重複の可能性:
dynamic_castの型は、完全なクラス型へのポインターまたは参照である必要があります。そうでない場合は、void *
名前空間Fuzzyがあり、CuteDogという抽象クラス(別の抽象クラスから継承)があります。
PuppyArmyという新しいクラスを書いています
PuppyArmyのCuteDogへのポインターが欲しいのですが、ヘッダーファイルでこれを試しています。
namespace Fuzzy { class CuteDog }
using namespace Fuzzy;
class PuppyArmy {
...
CuteDog *cute;
}
それから私のcppファイルにあるとき私はこれを持っています
using namespace Tough;
....
cute = dynamic_cast<::Fuzzy::CuteDog*>(foo()); // where foo() returns the parent class of CuteDog*
コンパイラは私に言っています
C2440: '=' : cannot convert from Fuzzy::CuteDog * to PuppyArmy::Fuzzy::CuteDog *
私がここで間違っていることへのポインタはありますか?