Унаследованный атрибут const и инициализация (ошибка?)

Я был удивлен, что этот код на самом деле считается правильным (gcc 4.2.1):

class A {
public:
const int i;
};
class B: public A {
public:
//B() {}
};

так что я могу позволить некоторому атрибуту не инициализироваться. Компилятор жалуется, когда я пытаюсь создать экземпляр A (я, конечно, согласен), но позвольте мне создать экземпляр B без каких-либо предупреждений или ошибок!

Но что еще хуже, компилятор несовместим. Когда я раскомментирую пустой ctor B, компилятор жалуется, когда я создаю экземпляр B … Для меня это похоже на ошибку, правильно или нет? Или я где-то ошибся?

6

Решение

Это действительно ошибка компилятора, сообщается Вот.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector