- 博客(11)
- 收藏
- 关注
原创 C++知识点23
1. 友元类:友元类是单向的,如果声明B是我A类的友元类,那么B就可以访问我A的数据成员,但是并不代表我A可以访问B的数据成员;友元类也不能传递。 2. 关于建立C++工程:一个类声明在一个.h中,不需要包含头文件,要是要使用友元,还要提前声明友元类。然后在对应的.cpp中定义方法以及其他,包含对应头文件。最后在main.cpp中包含所有头文件,进行调用。
2017-03-12 23:09:46 355
原创 C++知识点22
1. 静态数据成员初始化:只能在类体外初始化,int Box::height = 10;,并且不能使用参数初始化表对静态数据成员进行初始化。 如果在类外使用非私有的静态数据成员时,格式为 Box::height,因为静态数据成员不属于某一个对象。 2. 静态成员函数:因为它不属于某一个对象,所以它没有this指针,也不能引用非静态的数据成员,静态成员函数主要用来访问静态数
2017-03-11 22:45:01 355
原创 C++知识点21
1. 动态分配空间:Box *pt = new Box; 或者可以直接 = new Box(12,30,14);进行对象的初始化。 2. 对象的赋值和复制:赋值:对已有的对象进行相互的赋值;赋值:从无到有的建立一个对象 Box b1(b2); 或者 Box b1 = b2; 3. 静态数据成员:每个对象都共同拥有这个数据成员,而且在还没有创建对象实例的时候,这个静
2017-03-10 16:49:46 273
原创 C++知识点20
1. 指向常对象的常指针变量:Time * const p; 2. 指向常对象的指针变量:const Time *p;不能通过p来改变对象的成员数据 Time const t1 / const Time t1 t1是常对象,任何情况下不被改变 void Time::func() const; func是常成员函数,可以引
2017-03-09 22:42:38 361
原创 C++知识点19
1. 常指针:常指针可以指向常变量或者非常变量,那么指向非常变量时,就不允许使用常指针对这个变量进行修改。 2. 对于函数的形参:必须保证形参的要求高于或者等于实参的要求。也就是实参为常变量的话,那么形参必须为常变量,才能传入;非常变量的实参可以传给const或者非const的形参。总结一下,就是必须保证形参比实参苛刻,越苛刻就是越加const。详见 C++教科书P93表格。
2017-03-08 19:11:11 398
原创 C++知识点18
1. 常对象:常对象只是保证其中的数据成员不被修改,而不代表常对象中的成员函数也都是常成员函数,不加const修饰,成员函数就还是非const成员函数。常成员函数不能调用另一个非常成员函数。 2. 指向对象的常指针:初始化以后,至始至终都指向同一个对象,并且不能被修改,但是能够修改该对象中的成员变量。 3. 常变量和常指针:对于常变量,只能用常指针指向它。
2017-03-07 23:28:45 222
原创 C++知识点17
1. 非常成员函数:可以引用常数据成员,但是不能修改;不能引用常对象的数据成员。 2. 常数据成员、常成员函数、常对象:1)非成员函数可以引用常数据成员,并对非常数据成员进行修改。2)如果要求所有的成员数据成员都不允许改变,那么可以全部声明为常数据成员,或者直接声明为常对象,并且使用常成员函数进行引用,确保不修改数据成员。3)对于常对象:只能使用常成员函数进行成员数据访问,不
2017-03-06 22:57:22 469
原创 C++知识点16
1. 常对象:常对象不能调用该对象的非const型成员函数。 2. 常成员函数:void get_time() const;这样就声明为常成员函数了。 3. 使用常成员函数修改常对象的变量:提供了mutable int count;就可以使用常成员函数对常对象的变量进行修改。 4. 常数据成员的初始化:必须使用Time::Time(int h):hou
2017-03-05 22:36:02 263
原创 C++知识点14
1. 析构函数的调用:是在函数执行完毕之后调用还是执行完毕之前就调用? 2. 普通函数的函数名:即为该函数的入口地址?29点中的为什么要取地址?(答:C语言) 3. 指向对象成员函数的方法:1)函数参数的类型和参数的个数需要相同。2)函数返回值的类型相同。3)所属的类相同。
2017-03-03 20:07:58 236
原创 C++知识点13
1. 无参构造函数:Box box1;而不要写成Box box1(); 默认的构造函数时不加括号的。 2. 使用默认参数的构造函数:声明Box(int h = 10,int w = 10,int len = 10); 定义时可以不用再指定默认的参数。这带来的问题就是,会出现无参构造函数和默认参数构造函数的歧义,如果调用时,不给出特定的值,那么到底是调用哪一个构造函数呢?这就
2017-03-02 20:05:18 265
原创 C++知识点12
1. 带参数初始化表对数据成员初始化:Student::Student(int n= 0,string na= "NUL"):num(n),name(na){…},就可以通过Student st(123,”Zhang”);来初始化构造对象,当然可以缺省,例如只初始化学号。构造函数的默认值也可以不加的,Student::Student(int n,string na ):num(n
2017-03-01 22:19:43 304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人