Possible Duplicate:
The type in a dynamic_cast must be a pointer or reference to a complete class type, or 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 *


有任何指向我在这里做错事情的指针吗?

最佳答案

似乎您没有在定义CuteDog实现的地方包含头文件

09-06 11:31