2015-07-17 2 views
0

Будучи студентом в прошлом году, я работал с GCC 4.4.7 для компиляции кода на C++, и он создавал бы конструкторы и деструкторы для моих классов, если они не были явно определены в коде. Является ли это функцией, которая существует в версии 4.2.x?Создает ли GCC 4.2.x конструкторы?

Прежде чем вы спросите, да, я искал это и посмотрел на gcc.gnu.org, но мои поиски ничего не изменили.

+1

Это особенность не компилятора, а языка C++. Чтение, например. [эта ссылка] (http://en.cppreference.com/w/cpp/language/default_constructor#Implicitly-declared_default_constructor), чтобы узнать, когда генерируется * неявный конструктор *. –

+0

Если вы не указали конструктор или деструктор, он создает пустой, который ничего не делает по существу – okebz

+0

@JoachimPileborg Сгенерированный конструктор не является неявным. Декларации и определения. – Columbo

ответ

2

Если нет конструктора/деструктора, созданного пользователем, тогда вам будет предоставлен.

C++ 11 стандарт § 12.1.4 (конструктор)

конструктор по умолчанию для класса X является конструктором класса X, который может быть вызван без аргумента. Если нет конструктора, объявленного пользователем для класса X, конструктор, не имеющий параметров, неявно объявлен по умолчанию (8.4). Неявно объявленный конструктор по умолчанию является встроенным публичным членом своего класса.

C++ 11 стандарт § 12.4.4 (деструктор)

Если класс не имеет пользовательского объявленной деструктор, деструктор неявно объявлен как по умолчанию (8,4). Unicitlydeclared деструктор является встроенным публичным членом своего класса.

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