2014-02-25 115 views
-7

考慮下面的類定義C++操作員EQUAL

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

以下哪項功能,還必須爲南瓜類實現它才能正常工作? (a)任何參數的構造 (b)中操作者= (C)操作者()(d)setRadius (e)中操作者刪除

+5

你只是把你的功課問題,問了我們,不是嗎? – user2357112

+0

@ user3342529你想和我們一起通過你的[考試問題](http://stackoverflow.com/questions/22003334/is-the-result-7)嗎?!?停止這個,否則你會得到更快的禁止問題,比你可以更正這個... –

+0

_no parameter constructor_ - 是一種非常糟糕的方式來描述它。一個_default構造函數_(這就是它所指的)被定義爲一個可以不帶參數的構造函數。例如:'南瓜(int = 0)' –

回答

1

以下哪些功能,也必須爲南瓜類實施了它正常工作?

那麼,當然,你在課堂上聲明的那些。從你表現出你一定會需要同時定義:

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

,我看不出有什麼特別的理由跟隨Rule of Three,因爲你只有告訴我們一個無害double

,如果你做任何RAII或您的拷貝構造函數和/或析構函數是不平凡,這大概就是這樣。在這種情況下,你也必須定義:

Pumpkin& operator=(const Pumpkin&); 

,如果你使用的是C++ 11,它可能是一個好主意,也可以定義:

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

即所謂移動構造函數移動分配