一. 函数的原型以及函数创建的时机
C++中创建一个空类:
C++代码
class Empty {};
默认会生成4个函数,其函数的原型如下:
C++代码
public:
Empty() { ... }
Empty(const Empty& rhs) { ... }
~Empty() { ... }
Empty& operator=(const Empty& rhs) { ... }
说明:1) 这些函数只有在需要调用的时候,编译器才会生成。2) 4个函数都是public的。
3) 4个函数都是inline的(即函数定义在类的定义中的函数)。4) 如果你显式的声明了这些函数中的任何一个函数,那么编译器将不再生成默认的函数。
比如,当遇到下列语句时,函数会被编译器生成:
C++代码
Empty e1; //默认构造函数
//对象销毁时,析构函数
Empty e2(e1);//拷贝构造函数
e2 = e1;//赋值运算符
另外,还存在两种默认的函数