默认构造函数、默认拷贝构造函数、默认析构函数、默认赋值运算符
这四个是我们通常大都知道的。但是除了这四个,还有两个,那就是取址运算符和 取址运算符 const
即总共有六个函数。
一个示例如下:
class Empty
{
public:
Empty();// 缺省构造函数
Empty(const Empty&);// 拷贝构造函数
~Empty();// 析构函数
Empty& operator=(const Empty& ); // 赋值运算符
Empty* operator&();// 取址运算符
const Empty* operator&() const;// 取址运算符 const
};
但是,C++默认生成的函数,只有在被需要的时候,才会产生。即当我们定义一个类,而不创建类的对象时,就不会创建类的构造函数、析构函数等。
说明:1) 这些函数只有在需要调用的时候,编译器才会生成。
-
4个函数都是public的。
-
4个函数都是inline的(即函数定义在类的定义中的函数)。
-
如果你显式的声明了这些函数中的任何一个函数,那么编译器将不再生成默认的函数。