電子書籍の厳選無料作品が豊富!

基底クラスから派生クラスにポインタはキャストできないのでしょうか??
以下のソースを実行したところすべてのキャスト演算において

'初期化中' : 'CBase *' から 'CEx *' に変換できません。
base から derived へのキャストには、dynamic_cast または static_cast が必要です。

というエラーが出てしまいます。
これはキャストできないのでしょうか??

class CBase
{
public:
    int base;
};

class CEx : public CBase
{
public:
    int ex;
};


void main( void )
{
  CBase* base = new CEx;
  CEx* e1 = dynamic_cast<CBase*>( base );
  CEx* e2 = static_cast<CBase*>( base );
  CEx* e3 = reinterpret_cast<CBase*>( base );
  CEx* e4 = (CBase*)( base );
}

A 回答 (1件)

参考になりそうなページ


http://www.geocities.jp/ky_webid/cpp/language/02 …

>  CEx* e4 = (CBase*)( base );
の部分は、
  CEx* e4 = (CEx*)( base );
の間違いですか。
    • good
    • 0
この回答へのお礼

まったくそのとおりでした。

お騒がせしました。

お礼日時:2008/11/02 23:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!