-
不能直接赋值常成员函数的成员变量查看全部
-
常成员函数查看全部
-
一个普通的成员函数被重载了一个常成员函数时,实例化的对象变量调用的是普通成员函数,若想调用常成员函数,那么实例化时必须有const修饰,使实例化的是一个对象常量。如:const Coordinate coordinate(3,5);查看全部
-
初始化const修饰的成员变量,只能用初始化列表 初始化后便不能再改变查看全部
-
this指针无需用户定义,是编译器自动产生的。查看全部
-
将原来*this前的*去掉,紧跟在返回类型后加一个*,返回的就是原对象的指针,也可以对原对象进行操作查看全部
-
紧跟在返回类型后加一个&,此时返回的是引用,指向原对象,可以对原对象进行操作查看全部
-
此时返回的*this是一个另外的Array对象,操作返回的对象,并不会对原对象产生什么影响查看全部
-
this是指向自己的指针,*this就是自己的对象查看全部
-
this指针的作用就是:解决了参数和数据成员重名的问题,让计算机清楚是参数传给了数据成员; this指针一般都是系统默认调用,以防止在实例化对象调用成员函数的时候出现错误,保证一一对应,当数据成员和构造函数中的形参名字相同是,计算机会分不清楚谁给谁赋值,这是需要人工加上this指针,用来区别。查看全部
-
this指针就是指向自身数据的指针 同一个类,在实例化数个之后,对象的成员属性会分别放在内存的不同区域,但是这些成员函数会储存在同一片区域(这片区域在内存中叫代码区) 既然函数的逻辑代码都是以二进制的方式存储在代码区,参数中也没有数据成员,那么在调用数据成员的时候,怎么可能成功呢? 更重要的是,当存在多个对象的时候,函数该如何确定该调用哪个对象的数据成员呢? 要解决这个问题,归功于this指针。 编译时编译器自动为每个成员函数的参数列表都添加一个this 指针 当实例化对象并且使用它们的成员函数时 ,this指针就代表这个对象本身的地址 用this指向自身数据成员 this指代的是哪个类,取决于this位于哪个类中查看全部
-
对象成员指针:一个类的对象指针作为另外一个类的成员 在构造函数中从堆中该分配了内存,就需要在析构函数中释放掉内存 对象成员指针初始化时和对象成员方法相同,可以通过初始化列表进行初始化也可以普通刑事初始化 对象成员:Line 有两个Coor对象 一个Coor对象有2个int坐标成员 一个int类型在32位上占4字节 所以Coor占8个内存 Line占16个内存(32位) 对象成员指针:Line有两个Coor对象指针 一个Coor对象指针 指向Coor(含int 坐标成员)的内存 一个指针在32位上占4字节 64位占8字节 所以Line占8字节(32位) 释放顺序: 1、对象成员 因为Line包含Coor的内存 所以先释放Line 再释放Coor 2、对象成员指针 由于Line包含的只是Coor的指针 Coor的内存本身不再Line内 所以先释放Coor 再释放Line查看全部
-
使用sizeof来计算line这个对象有多大,如果line中数两个coordinate对象成员的话,由于每个coordinate有两个数据成员,则要占16个基本内存单元,但是在此line中是两个对象成员指针,每个对象成员指针占4个基本内存单元,所以line的大小为8 一个指针在32位编译器下面只占4个基本内存单元查看全部
-
浅拷贝的话只是简单地把值拷贝过去。但是这样会出现问题就是只简单地把指针拷贝过去的话,一旦修改拷贝对象的数据,被拷贝对象里面的数据也会随之发生改变。 在拷贝时不是做简单的值的拷贝,而是将堆中内存的数据也进行拷贝,这种拷贝叫做深拷贝 只是将数据成员的值进行了简单的拷贝的这种拷贝叫做浅拷贝 深拷贝 重新分配一段内存查看全部
-
只是将数据成员的值进行了简单的拷贝的这种拷贝叫做浅拷贝查看全部
举报
0/150
提交
取消