首页 > 代码库 > Effective C++ Item 5 了解 C++ 默默编写并调用哪些函数

Effective C++ Item 5 了解 C++ 默默编写并调用哪些函数

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie


经验:

如果你自己没声明,编译器会自动声明copy constructor,copy assignment,destructor,

如果你没有声明任何构造函数,编译器会自动声明default constructor

示例:

如果你写下

class Empty{  };

将会等价于

class Empty{
public:
    Empty() {...}  //default构造函数
    Empty(const Empty &rhs) {...} //copy 构造函数
    ~Empty() {...} //析构函数
    
    Empty &operator=(const Empty &rhs) { ... } //copy assignment 操作符
}

只有当这些函数被调用时,编译器才会创建它们

Empty e1; //default构造函数, 析构函数

Empty e2(e1); //copy 构造函数
e2 = e1; //copy assignment操作符


todo