c ++ получить объект базового класса из указателя производного класса? - PullRequest
1 голос
/ 22 марта 2011

Предположим, у меня есть Derived * производнаяPtr;
Я хочу Base baseObject от производногоPtr;

Base baseObject = * производныйPtr; будет создавать baseObject с соответствующими переменными членами базового класса?

Спасибо

Ответы [ 3 ]

2 голосов
/ 22 марта 2011

Это Объектная нарезка

Derived* obj = new Derived;
base objOne = (*obj) ;  // Object slicing. Coping only the  Base class sub-object
                        // that was constructed by eariler statement.
1 голос
/ 22 марта 2011

Для этого можно использовать динамическое приведение.

, например

Base* baseObject = dynamic_cast<Base*>(derivedPtr);

http://www.cplusplus.com/doc/tutorial/typecasting/

0 голосов
/ 22 марта 2011

Да. На самом деле это называется «нарезка», поскольку вы просто отбираете все из производного класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...