2016-07-16 14 views
0

這是我在C++中從未見過的語法。什麼是C++中的「View()= default」?

請參閱以下內容:

class View 
{ 
    private: 
    int screenSize; 
    int screenScale; //"the ZOOM" 
    Point origin; 
public: 
    const int minScreenSize = 6; 
    const int maxScreenSize = 30; 

    View():screenSize(25),screenScale(2),origin(-10,-10){} 
    ~View() = default; 
    View(const View&) = default; 
    View(View&&) = default; 
    View& operator=(const View&) = default; 
    View& operator=(View&&) = default; 
    View& myAdd() = delete; 
} 

是什麼意思:

View() = defaultView() = delete

在此先感謝。

+0

'構造函數()=默認值;' 意味着要明確編譯器生成該類的默認構造函數 '構造()= delete;' 表示您明確禁止該構造函數的用法。 –

+0

請看這裏http://en.cppreference.com/w/cpp/language/default_constructor –

+0

http://stackoverflow.com/questions/6502828/what-does-default-mean-after-a-class-function - 聲明,請在發佈之前快速搜索Google! – Sylvain

回答

0

它告訴編譯器爲您的類生成默認的「默認構造函數」。

這是在C++ 11中引入的。

對應的是= delete;這會指示編輯者而不是生成函數。

= default;優選空用戶定義consteuctor {}因爲用於定義析構函數被定義(即使當它們是空的)從未trivial,但是編譯器生成的函數是。這裏

更多細節:

http://en.cppreference.com/w/cpp/language/member_functions#Special_member_functions

http://en.cppreference.com/w/cpp/language/default_constructor

相關問題