-
八、对象成员
1、当对象(用一个类描述)作为数据成员时,先实例化对象成员,再实例化对象,销毁时与创建过程相反
2、坐标类对象成员的构造函数是需要有参数的,在加入参数时,应该进行初始化列表。
查看全部 -
常const,本质就是只有读权限的数据查看全部
-
m_iCount = arr.m_iCount;
m_pArr = new int[m_iCount];
上面两个顺序不能换。
查看全部 -
Arr1和Arr2都指向同一内存,但是析构函数中的delete []m_pArr只有一个,所以会释放同一地址的内存两遍,此时程序就会卡在析构函数。
浅拷贝直接赋值
查看全部 -
4—8比较重要
查看全部 -
常成员的初始化须使用初始化列表
查看全部 -
深拷贝:对堆中内存元素进行拷贝,而非简单的值的拷贝
查看全部 -
get()函数也是有读写权限的,有个this指针被隐藏了
查看全部 -
最重要的总结:如果函数被const重载,const对象和non-const对象,各自调用互不相干。但如果只有const函数,二者都是可以调用的(反正内部是不允许改变值的)。唯独特别的就是,如果只有non-const函数,const对象则不能调用,会编译报错(解释了一个常对象不可能通过其方法改变数据值。)
查看全部 -
记住对象在调用成员函数时,会默认传入this指针,而对于被const修饰的对象,则无法完成调用(因为传入的指针也被const修饰,只有“只读”权限),所以需要在成员函数后面加上const(因为this指针是隐藏包含的)。此时正好也限定了成员函数对数据成员的操作(只读不能修改)。
查看全部 -
const的重出江湖,一石激起千层浪。常成员函数和成员函数可以互为重载,只有常对象才能调用常成员函数。
查看全部 -
32位的sizeof(p)等于4,64位的sizeof(p)等于8。
原因:一个字节占8位,32位除以8位,得到的字节数就是sizeof()的结果。
查看全部 -
对象成员是指针的时候,通常要在构造函数中使用new申请内存来初始化,所以记得要在析构函数中用delete释放内存。
查看全部 -
如果Line的属性不是两个对象,而是一个对象数组(长度为2),要怎么初始化呢?
查看全部 -
对象引用和对象常引用都是对象的别名,一个对象可以有多个对象常引用
查看全部
举报