您的位置:首页 > 编程语言 > C语言/C++

C++的构造函数和拷贝构造函数

2004-08-15 22:40 441 查看
★ 编译器自动生成的构造仅仅做让编译能通过的事情,它不会初始化成员变量。

★ 编译器并不会自动生成缺省的构造函数和拷贝构造函数,仅仅在它需要的时候。

没错!对于下面的类:

class Test {
int n;
};


编译器不会自动生成构造函数,因为没有字段需要初始化。

★ 很多时候都需要深拷贝,这时需要自己定义copy constructor和重载operator=。

★ 如果只需要浅拷贝,就不用定义copy constructor并逐一赋值,因为编译器自动生成的memcpy和memset更有效率。

★ 返回一个局部对象会导致两次拷贝构造:

T f() {
T t;
return t;
}


★ 全局和静态对象会在使用前自动初始化,所有字段置0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐