-
常引用和常指针只能调用对象的常成员函数
查看全部 -
常指针和常引用
查看全部 -
原函数和它的常成员函数互为重载
当void changeX() 和void changeX()const 均存在时,实例化一个常成员才能调用常成员函数
查看全部 -
常成员函数 的定义:
void changeX() const;查看全部 -
对象各自的this指针指向各自对象的首地址,所以不同对象的this指针一定指向不同的内存地址
this指针无需用户定义,是编译器自动产生的。
当成员函数的参数或临时变量与数据成员同名时,可以使用this指针区分同名的数据成员。
this指针也是指针类型,所以在32位编译器下也占用4个基本的内存单元,即sizeof(this)的结果为4。
查看全部 -
this指针只能在类的成员函数中使用,它指向该成员函数被调用的对象。this指针一般用于反回当前对象自身,由于this指针始终指向调用对象,因此不能在静态成员函数的定义中使用this指针。静态成员函数一般不需要调用对象,因此也就没有this指针。
查看全部 -
示例:
class Array{
public:
Array(int len){ this ->len = len;}int gerLen(){return len;}
void setLen( int len){ this->len = len;}
private:
int len;
}
查看全部 -
在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。
友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针。
查看全部 -
对象成员指针
查看全部 -
当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数:
(1)一个对象以值传递的方式传入函数体
(2)一个对象以值传递的方式从函数返回
(3)一个对象需要通过另外一个对象进行初始化。在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误。
深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。
查看全部 -
实例化对象A时,如果对象A有对象成员B,那么先执行对象B的构造函数,再执行A的构造函数
如果对象A中有对象成员B,那么销毁对象A时,先执行对象A的析构函数,再执行B的析构函数。
如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B。
查看全部 -
堆中实例化的数组需要手动销毁释放内存,在栈中实例化的数组,系统自动回收内存
查看全部 -
实例化对象数组时,内存既可以从堆上分配,也可以从栈上分配
查看全部 -
栈内存和堆内存的区别
查看全部 -
查看全部
举报