C++中的空类,默认产生哪些类成员函数?


class Empty
{
public:
	/*Empty();//默认构造函数
	Empty(const Empty& rhs);//拷贝构造函数
	~Empty();//析构函数
	Empty& operator=(const Empty& rhs);//赋值函数
   Empty* operator&();//取地址运算符
   const Empty* operator&() const;//取址运算符 const */
protected:
private:
};
void main()
{
	Empty a;
	Empty b=a;
	Empty* c=&a;
	Empty d(a);
    
}
上述程序可以在MSVC2008上可以运行。表明一个空类可以产生六个成员函数,分别是默认构造函数,拷贝构造函数,析构函数,赋值函数,取地址运算符,取地址运算符const.当然,所有这些只有当被需要才会产生。比如你定义了一个类,但从来定义过该类的对象,也没使用过该类型的函数参数,那么基本啥也不会产生。在比如你从来没有进行过该类型对象之间的赋值,那么operator=不会被产生。



你可能感兴趣的:(基础知识)