2015-01-30 3 views
-3

Я прочитал об определении на структуру типа:C++ Struct определение объяснение

struct someStruct { 
    int x; 
    int y; 
}; 

struct otherStruct : public someStruct {}; 

Так что мой вопрос об определении otherStruct. Что делает это определение? Я новичок в C++, поэтому хочу узнать, под каким ключевым словом я могу найти определение otherStruct, чтобы читать о них в книге.

+3

[inheritance] (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=c%2B%2B%20inheritance) – bolov

+4

Вы спрашиваете, как работает наследование ? Это довольно большой вопрос для простого ответа, но у вашей [вводной книги] (http://stackoverflow.com/questions/388242) должна быть глава об этом. –

+0

@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

ответ

2

Этот ответ является просто царапиной на поверхности inheritance концепции OOP и не охватывает всех ее аспектов. Вы должны прочитать книгу о C++ (или около OOP в целом), чтобы получить полный ответ.

struct otherStruct : public someStruct Часть говорит, что otherStruct расширяет someStruct с public наследования. Простыми словами, публичное наследование не изменяет видимость членов (свойств и методов), унаследованных от базового класса.

Блок объявлений новой структуры ({}) пуст. Он не добавляет новых членов к унаследованным из struct someStruct.

Если вы сравниваете someStruct и otherStruct по их памяти и поведению, они идентичны. Но они разные, и они не могут быть заменены друг на друга.

Однако указатель на переменную типа otherStruct может быть использован, когда указатель на структуру someStruct, как ожидается, (потому что otherStruct, путем расширения someStruct обладает всеми свойствами, ожидаемых от someStruct), но наоборот не представляется возможным.

+0

Благодарим вас за помощь. Я знаю, что такое ООП и ее концепции. То, что я не знаю, пишет C++ .. поэтому я не знал, что такое синтаксис. Теперь я знаю, что otherStruct расширяет someStruct. Это все, что я хотел знать! – Ventu

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