c++构造函数 对象初始化

最近查看了关于c++构造函数的博客,为了防止关键知识的遗忘,特此记录一些要点,以便于从此的查阅。c++

若是不主动书写构造函数,c++或默认提供通常构造函数,拷贝构造函数以及复制运算符的操做。
通常的构造函数没有任何参数,默认提供的该种构造函数不执行任何操做
默认提供的拷贝构造函数简单的将成员变量赋值
默认提供的复制运算也是简单的将成员变量赋值
假设有类A,3种初始化方法在代码中表现以下
A a();  通常的构造函数(带参数的通常构造函数能够视做对a的重载)
A a(b);  拷贝构造函数
A a = c; 赋值运算
值得注意的是 若是有动态分配的类成员 那么应该重载拷贝构造函数和赋值运算符
主要是因为,默认的考培构造和=运算符都是简单的进行成员的复制,这样会致使两个对象的成员同时指向一块内存区域,两个成员粘滞在一块儿,改动了其中一个,另外一个也会发生改变。因此必须重载这个函数以及运算符,保证每一个对象的成员(动态分配)都有本身独立的空间。
关于如何对赋值运算符进行重载, 会在另外一篇中记载函数

相关文章
相关标签/搜索