2016-07-16 2 views
0

Это синтаксис, который я никогда не видел на C++.Что такое "View() = default" в C++?

Смотрите следующее:

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() = default и View() = delete?

Заранее спасибо.

+0

'Constructor() = по умолчанию;' означает, что вы явно хотите, чтобы компилятор генерирует конструктор по умолчанию для этого класса 'Constructor() = 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 -declaration, пожалуйста, сделайте быстрый поиск в 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

Смежные вопросы