-
深拷贝:当有指针的时候进行拷贝会使指针指向同一块内存,arr1修改值会使内存中的值发生改变,arr2修改值也会使内存中的值发生改变,致使arr1和arr2的值相同。释放内存时去释放指针也将会出现问题,计算机会崩溃。 我们要的是拷贝值,而不是使指针指向相同的内存。 当进行对象拷贝时不是简单的进行值的拷贝,而是将堆中内存的数据也进行拷贝,这种拷贝模式即为深拷贝。 拷贝构造函数是为了对象之间初始化赋值的,浅拷贝将新对象再一次指向了旧对象分配的内存单元,释放时容易崩溃。而深拷贝采用新的内存申请和循环赋值可以避免重复使用一个块内存。查看全部
-
this 本身是一个指针,*this 便是一个对象查看全部
-
一个对象可以有多个常引用 普通数据对象成员:既能调用普通成员函数,也能调用常成员函数 常数据对象成员:只能调用常成员函数 普通成员函数:既能调用普通成员函数,也能调用常成员函数;既能使用普通数据成员,也能使用常数据成员,但对常数据成员只用读权限 常成员函数:只能调用常成员函数;既能使用普通数据成员,也能使用常数据成员,但对常数据成员只用读权限 普通对象、普通引用和普通指针:既能调用普通成员函数,也能调用常成员函数 常对象、常引用和常指针:只能调用常成员函数查看全部
-
常成员函数中可以使用普通的数据成员,但是不能改变对象成员的值查看全部
-
常对象调用常成员函数查看全部
-
当类的数据成员用const修饰后,构造函数只能采用初始化列表的方式查看全部
-
多次反复的看几遍查看全部
-
多看几次查看全部
-
printInfo成员函数的返回值是一个对象查看全部
-
创建常指针:const Coordinate *p = &coor; 创建常引用:const Coordinate &c = coor;查看全部
-
一个对象可以有多个对象引用 常对象只能调用常成员函数,不能调用普通成员函数 普通对象能够调用常成员函数,也能够调用普通成员函数 常指针和常引用都只能调用对象的常成员函数。查看全部
-
Coordinate * const pCoor = &coor1 : 这种方式定义的常对象指针“只能指向coor1,但可以调用coor1的不同的函数”;(常对象指针:拥有读写权限) const Coordinate *pCoor = &coor1 : 所指对象不能改变,只能调用coor1的“常成员函数”。(常指针:只拥有读权限)查看全部
-
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、常成员函数内不能调用普通的成员函数。查看全部
-
一个对象可以有多个对象常引用查看全部
举报
0/150
提交
取消