C ++ OPERATOR EQUAL

时间:2014-02-25 02:53:11

标签: c++ constructor operators

考虑以下类定义

class Pumpkin {
public:
Pumpkin(const Pumpkin & other);
~Pumpkin();
     // more public member functions
private:
double radius;
// more private member variables
};

还必须为Pumpkin类实现以下哪些功能才能使其正常运行? (a)没有参数构造函数 (b)运营商= (c)operator()(d)setRadius (e)运营商删除

1 个答案:

答案 0 :(得分:1)

  

还必须为Pumpkin类实现以下哪些功能才能使其正常运行?

嗯,当然是你在课堂上宣布的那些。根据你所展示的内容,你肯定需要定义两者:

Pumpkin(const Pumpkin & other);
~Pumpkin();

我认为没有任何特别理由可以关注Rule of Three,因为您只向我们展示了无害double

,如果您执行任何RAII或您的复制构造函数和/或析构函数非平凡,那可能就是这种情况。在这种情况下,您还必须定义:

Pumpkin& operator=(const Pumpkin&);

如果您使用的是C ++ 11,那么定义它也是一个好主意:

Pumpkin(Pumpkin&&);
Pumpkin& operator=(Pumpkin&&);

分别称为 move-constructor move-assignment