1

私がDerived*の派生Ptrを持っているとします。
私は、派生PtrからベースbaseObjectが欲しいです。

ベース baseObject = *derivedPtr; 適切な基本クラスのメンバー変数を使用して baseObject を作成しますか?

ありがとうございました

4

3 に答える 3

3

オブジェクトスライスです

Derived* obj = new Derived;
base objOne = (*obj) ;  // Object slicing. Coping only the  Base class sub-object
                        // that was constructed by eariler statement.
于 2011-03-22T04:39:20.857 に答える
2

これを実現するには、動的キャストを使用できます。

例えば

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

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

于 2011-03-22T04:41:52.200 に答える
0

はい。派生クラスからすべてをスライスするだけなので、これは実際には「スライス」と呼ばれます。

于 2011-03-22T04:37:36.733 に答える