掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CString派生クラスのデバッグ情報 (ID:73117)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
まあ polymorphic に使おうとしても使えないんだけどね・・・ 状況としては下記と同じなので CStringEx を CString として扱うことはできない。 例題の CStringEx * を CString * にアップキャストしてはいけないので 最初から指摘しているとおり polymorphic に使ったらバグる。 struct b { b() { std::wcout << L"b::b\n"; } // virtual つけたりはずしたりして味噌 /*virtual*/ ~b() { std::wcout << L"b::~b\n"; } }; struct d : b { d() { std::wcout << L"d::d\n"; } ~d() { std::wcout << L"d::~d\n"; } }; int wmain(int argc, wchar_t* argv[]) { b* p=new d; delete p; return 0; } 最初の発言にある CStringEx の派生クラス CStringExEx を作ったら CStringExEx を CStringEx として使うことはできる CStringExEx を CString として使うとバグる (codeguru の CStringEx は以下略)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.