Этот ответ является просто царапиной на поверхности inheritance
концепции OOP
и не охватывает всех ее аспектов. Вы должны прочитать книгу о C++
(или около OOP
в целом), чтобы получить полный ответ.
struct otherStruct : public someStruct
Часть говорит, что otherStruct
расширяет someStruct
с public
наследования. Простыми словами, публичное наследование не изменяет видимость членов (свойств и методов), унаследованных от базового класса.
Блок объявлений новой структуры ({}
) пуст. Он не добавляет новых членов к унаследованным из struct someStruct
.
Если вы сравниваете someStruct
и otherStruct
по их памяти и поведению, они идентичны. Но они разные, и они не могут быть заменены друг на друга.
Однако указатель на переменную типа otherStruct
может быть использован, когда указатель на структуру someStruct
, как ожидается, (потому что otherStruct
, путем расширения someStruct
обладает всеми свойствами, ожидаемых от someStruct
), но наоборот не представляется возможным.
[inheritance] (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=c%2B%2B%20inheritance) – bolov
Вы спрашиваете, как работает наследование ? Это довольно большой вопрос для простого ответа, но у вашей [вводной книги] (http://stackoverflow.com/questions/388242) должна быть глава об этом. –
@ChristinaObermaier [немецкий] Guck dir mal das hier an ... http://openbook.galileo-press.de/c_von_a_bis_z/ ist zwar C, aber davon kannst du C++ auch nach und nach lernen. – Blacktempel