
C++学习笔记
文章平均质量分 60
wq右边
这个作者很懒,什么都没留下…
展开
-
虚函数
本文整理自网络 在面向对象的C++语言中,虚函数(virtual function)是一个非常重要的概念。因为它充分体现了面向对象思想中的继承和多态性这两大特性,在C++语言里应用极广。比如在微软的MFC类库中,你会发现很多函数都有virtual关键字,也就是说,它们都是虚函数。难怪有人甚至称虚函数是C++语言的精髓。 那么,什么是虚函数呢,我们先来看看微软的解释:原创 2013-02-05 12:04:08 · 865 阅读 · 0 评论 -
C++知识要点整理09:运算符重载
1.运算符重载一般格式为:函数类型 operator 运算符名称(形参表){ 对运算符的重载处理 }运算符被重载后,其原有的功能仍然保留,没有丧失或改变。那么,同一个运算符可以代表不同的功能,编译系统是怎样判别该执行哪一个功能呢?是根据表达式的上下文决定的,即根据运算符两侧(如果是单目运算符则为一侧)的数据类型决定的。2.重载运算符的规则(1)C++不允许用户自己定义新原创 2013-03-28 07:24:49 · 1043 阅读 · 0 评论 -
C++知识要点整理07:友元
1.将普通函数声明为友元函数class Time{public:..friend void display(Time &);private"..int hour;};..void display(Time &t){..} 请注意,display是一个在类外定义的且未用类Time作限定的函数,它是非成员函数,不属于任何类。声明了display是T原创 2013-03-27 07:42:42 · 1022 阅读 · 0 评论 -
C++知识要点整理02:指针
1.用指针作函数参数函数的参数不仅可以是整型,浮点型,字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送给被调用函数的形参。2.用指针变量作函数形参接收数组地址数组名代表数组首元素的地址。用数组名作函数的参数,传递的是数组首元素的地址。3.C++编译系统将形参数组名一律作为指针变量来处理。例如:void select_sort(int array[],int原创 2013-03-25 11:07:30 · 1009 阅读 · 0 评论 -
C++知识要点整理06:静态成员
1.静态数据成员 静态数据成员是一种特殊的数据成员,以关键字static开头。 如果希望各对象中的数据成员的值是一样的,就可以把它定义为静态数据成员。说明:(1)静态数据成员不属于某一个对象,静态数据成员是在所有对象之外单独开辟空间。(2)如果在一个函数中定义了静态变量,在函数结束时该静态变量并不释放,仍然存在并保留其值。静态数据成员也是类似的,它 不随对象的建立原创 2013-03-27 06:58:48 · 1086 阅读 · 0 评论 -
C++知识要点整理05:常对象 常引用
1.常对象 可以在定义对象时加关键字const,指定对象为常对象。常对象必须要有初值。如:Time const t(12,23);这样,在t的生命周期 中,对象t的所有数据成员的值都不能被修改(常对象中的成员函数不是常成员函数,只保证其数据成员是常数据成员,值不被修 改)。定义常对象的一般形式为: 类名 const 对象名[(实参表)];或 const 类名 对象名[原创 2013-03-26 21:50:29 · 1531 阅读 · 0 评论 -
C++知识要点整理08:类模板
1.类模板 对于功能相同而数据类型不同的一些函数,不必一一定义各个函数,可以定义一个可对任何类型变量进行操作的函数模板,在调用函数时,系统会根据实参的类型,取代函数模板中的类型参数,得到具体的函数。 例如:template //声明一个模板,虚拟类型名为numtype class Compare //类 模板名为Comp原创 2013-03-27 08:18:35 · 977 阅读 · 0 评论 -
C++知识要点整理04:构造函数 对象
1.构造函数和析构函数 先构造的后析构,后构造的先析构,但这是一般情况下,还有几点需要注意: (1)如果在全局范围中定义对象,那么它的构造函数在本文件模块中的所有函数(包括main函数)执行之前调用。但如果一个程 序包含多个文件,而在不同的文件中都定义了全局变量,则这些对象的构造函数的执行顺序是不确定的。当main函数执行完毕或 调用exit函数时(此时程序终止),调原创 2013-03-26 17:57:53 · 1030 阅读 · 0 评论 -
C++知识要点整理01:数组 内/外部成员
1.数组作为函数参数 (1)数组元素作函数实参 数组元素可以用作函数实参,不能用作形参。因为形参是在函数被调用时临时分配存储单元的,不可能为一个数组元素单独分 配存储单元(数组是一个整体,在内存中占连续的一段存储单元)。在用数组元素作函数实参时,把实参的值传给形参,是“值传 递”方式。数组传递的方向是从实参到形参,单向传递。 (2)数组名作函数参数原创 2013-03-20 21:13:30 · 1169 阅读 · 0 评论 -
C++知识要点整理03:引用
1.引用 对一个数据可以建立一个“引用”,它的作用是为一个变量起一个别名。这是C++对C的一个重要扩充。 例如:int a; int &b=a;以上声明了b是a的引用,即b是a的别名。经过这样的声明后,使用a或b的作用相同,都代表同一变量。可以这样理解引用:通过b可以引用a。注意:在上述声明中,&是引用声明符,并不代表地址。不要理解为“把a的值赋给b的地址”。在数据类型原创 2013-03-25 11:09:53 · 1014 阅读 · 0 评论 -
C++知识要点整理13:多态性与虚函数
1.多态性 向不同的对象发送同一个信息,不同的对象在接收时会产生不同的行为(即方法)。 在C++中,多态性的表现形式之一是:具有不同功能的函数可以用同一个函数名,这样就可以实现用一个函数名调用不同内容的函数。2.利用虚函数实现动态多态性 所谓虚函数,就是在基类声明函数是虚拟的,并不是实际存在的函数,然后在派生类中才正式定义此函数。 虚函数的作用是允许在派原创 2013-03-29 10:02:17 · 1121 阅读 · 0 评论 -
C++知识要点整理11:继承与派生(1)
1.继承(1)公用继承 基类的公有成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。(2)私有继承 基类的公有成员和保护成员在派生类中成了私有成员。其私有成员仍为基类私有。(3)受保护的继承 基类的公有成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有(保护成员的意思是:不能被外界引用,但可以 被派生类的成员引用)。原创 2013-03-28 21:03:11 · 1138 阅读 · 0 评论 -
C++知识要点整理12:继承与派生(2)
5.多重继承派生类的构造函数派生类构造函数名(总参数表):基类1构造函数(参数表),基类1构造函数(参数表),基类1构造函数(参数表列){派生类中新增数据成员初始化语句}6.多重继承引起的二义性问题分析一个例子:如果类A和类B中都有成员函数display和数据成员a,类C是类A和类B的直接派生类。下面分别讨论三种情况:(1)两个基类有同名成员,如果在main函数中定原创 2013-03-28 21:06:10 · 1211 阅读 · 0 评论 -
c/c++中#include <>与#include""区别
而""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。转载 2013-02-26 18:09:50 · 886 阅读 · 0 评论 -
随机数
本文来自网络。c++随机数生成函数rand(),实质生成伪随机数列。为生成更加随机的数列,需要srand(unsigned num)来播种。常用方式srand((unsigned)time(NULL));//增加头文件生成[a,b]之间的随机整数的方法:1、rand()%(b-a+1)+a;2、a+b*rand()/RAND_MAX;计算机的随机数都是由伪随机数,即原创 2013-02-07 15:26:14 · 2139 阅读 · 2 评论 -
#IFNDEF、#DEF、#ENDIF 的使用
本文转自http://blog.youkuaiyun.com/ufolr/article/details/7300489 这几个宏是为了进行条件编译。 一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。转载 2013-02-02 21:39:14 · 1086 阅读 · 0 评论 -
C++知识要点整理10:类型转换
1.标准类型数据间的转换(1)隐式类型转换 比如 int 到 double 类型的自动转换。(2)显式类型转换 C++中:类型名(数据) C中:(类型名)数据2.用转换构造函数进行不同类型数据的转换 转换构造函数的作用是将一个其他类型的数据转换成一个类的对象。 Complex(double r){real=r;imag=0;}(1)先声原创 2013-03-28 07:34:13 · 942 阅读 · 0 评论