-
当数据成员中含有指针时,浅拷贝会使两个对象的成员指针指向相同的内存地址 深拷贝不是简单的值拷贝,而是将指针成员指向的内存数据也进行拷贝。 不是所有的对象都需要深拷贝,应该根据情况合理使用。查看全部
-
成就感源于克服困难。查看全部
-
1.const数据成员:跟const常量一样,只是一个在类里(而且是在构造函数里),一个在类外而已,都必须初始化。 2.const成员函数:即普通成员函数后再加const。它可以读取数据成员的值,但不能修改它们。若要修改 时,数据成员前必须加mutable。以指定其可被任意更改。mutable是ansi c++考虑到实际编程时,可能一定要修改const对象中的某个数据成员而设的。const成员函数可以被相同参数表的非const成员函数重载。 3.普通对象:可以调用任意成员函数。见下面的例子 4.const对象:仅能调用const成员函数,但是构造函数和析构函数是唯一不是const成员函数却可以被const对象调用的成员函数。查看全部
-
一个对象可以有多个对象引用 常对象只能调用常成员函数,不能调用普通成员函数 普通对象能够调用常成员函数,也能够调用普通成员函数 常指针和常引用都只能调用对象的常成员函数。查看全部
-
Coordinate coor1(3,5); Coordinate &coor2 = coor1; Coordinate *pCoor = &coor1; 定义了一个引用,引用的名字是coor2,并且用coor2指向coor1,coor1就有了coor2的别名。给对象指针赋值的时候一定要加取地址符号&,例如Coordinate *pCoor = &coor1;<br> const Coordinate &coor2 = coor1;对象的常引用 const Coordinate *pCoor = &coor1;对象的常指针<br> 常引用只有读权限 coor2.getX()中,coor2只读,getX()具有读写权限<br> Coordinate * const pCoor = &coor1;一旦指定一个对象之后,就不能再指向别的对象,只限指向的对象不能变,但是指针本身指向对象的内容是可变的,指向的对象是可以读写的(即为pCoor不能指向其它位置,它指向的位置中的内容是可以变的)<br> 如果const Coordinate *pCoor = &coor1;这是常对象,因此只能调用常成员函数 常引用和常指针中,const都是在最前面查看全部
-
1、常成员函数的本质是内部使用常this指针。 2、常成员函数内使用数据成员时,不能改变数据成员的值。 3、常成员函数中可以使用普通的数据成员,但是不能改变对象成员的值 4、常成员函数内不能调用普通的成员函数。查看全部
-
const可以写在类名的前面,也可以写在类名的后面<br><br><br><br> const Coordinate m_coorA;也可以是Coordinate const m_coorA;<br><br><br> 常对象能且仅能调用常成员函数,即为配套使用,即为一般对一般,常对常<br><br> const Line line(1,2,3,4);此时line变成了常对象成员 常成员函数可以使用常数据成员和普通数据成员,但是不能改变它们的值查看全部
-
用const修饰对象成员,对象成员就变成了常对象成员 用const修饰成员函数,成员函数就变成了常成员函数。const要放在函数的最后, 一旦初始化就不能再修改,const就是干这个的,长对象成员用初始化列表初始化 函数里看着没有参数,实际上隐藏着this指针。常成员函数中隐藏的是常this指针,常指针指向的数据不允许被修改 例如:void Coordinate::changeX(){m_iX = 10;}即为void Coordinate::changeX(Coordinate *this){this->m_iX = 10;} void Coordinate::changeX()const{m_iX = 10;}即为void Coordinate::changeX(const Coordinate *this){this->m_iX = 10;} void changeX();与void changeX() const互为重载 要调用const修饰的常成员函数,实例化对象时,必须用const来修饰对象,const写在最前面查看全部
-
深拷贝查看全部
-
浅拷贝查看全部
-
对象数组的初始化如:Coordinate coor[2]={Coordinate(1,2),Coordinate(3,4);查看全部
-
如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B。查看全部
-
浅拷贝就是直接将数据成员的值直接赋值过去,不包含指针就行,如果包含指针,就会把两个对象的指针指向了同一个内存空间,容易发生错误。查看全部
-
深拷贝采用新的内存申请和循环赋值可以避免重复使用一个块内存。查看全部
-
浅拷贝查看全部
举报
0/150
提交
取消