读书人

C++中定义一个空类编译器都会做些什

发布时间: 2012-02-06 15:52:45 作者: rapoo

C++中定义一个空类,编译器都会做些什么~~~~
面试是问我的,我说了默认构造函数和默认析构函数,他说除了这两个之外

大侠们告知下啊,谢谢~~~

[解决办法]
答:
class Empty

{

public:

Empty(); // 缺省构造函数

Empty( const Empty& ); // 拷贝构造函数

~Empty(); // 析构函数

Empty& operator=( const Empty& ); // 赋值运算符

Empty* operator&(); // 取址运算符

const Empty* operator&() const; // 取址运算符 const

};

默认构造函数
析构函数
拷贝构造函数
赋值运算符(operator=)
取址运算符(operator&)(一对,一个非const的,一个const的)

当然,所有这些只有当被需要才会产生。比如你定义了一个类,但从来定义过该类的对象,也没使用过该类型的函数参数,那么

基本啥也不会产生。在比如你从来没有进行过该类型对象之间的赋值,那么operator=不会被产生。

class Empty
{
public:
Empty(); // 缺省构造函数

Empty(const Empty&); // 拷贝构造函数

~Empty(); // 析构函数

Empty& perator=(const Empty&); // 赋值运算符

Empty* operator&(); // 取值运算符
const Empty* operator&() const; // 取值运算符

};



[解决办法]

探讨
答:
class Empty

{

public:

Empty(); // 缺省构造函数

Empty( const Empty& ); // 拷贝构造函数

~Empty(); // 析构函数

Empty& operator=( const Empty& ); // 赋值运算符

Empty* operator……

[解决办法]
探讨

答:
class Empty

{

public:

Empty(); // 缺省构造函数

Empty( const Empty& ); // 拷贝构造函数

~Empty(); // 析构函数

Empty& operator=( const Empty& ); // 赋值运算符

……

读书人网 >C++

热点推荐