В чем разница между такими объявлениями объекта класса?
Допустим, есть два класса – базовый и производный. Я могу объявить объект базового класса как class A object1 и A object2
В чем разница между такими объявлениями ( не считая того, что это два разных объекта)?
class A
{
//...
};
class B : public A
{
private:
class A object1;
A object2;
//...
};
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
Ни в чём. Совместимость со структурами, а там - с кодом на Си.
Впрочем, в некоторых случаях использование ключевого слова class позволяет не объявлять данный класс выше в коде: tio.run
class B { class A* a; };
int main() { B *b; }
Если здесь убрать слово class, то будет ошибка компиляции: tio.run
class B { A* a; };
int main() { B *b; }
.code.tio.cpp:1:11: error: ‘A’ does not name a type class B { A* a; }; ^
Придётся его объявлять отдельно: tio.run
class A;
class B { A* a; };
int main() { B *b; }