在我的头文件扩展抽象类为Class1
我:混乱了在C++
class Class1 : Class2::Callback {
public:
//Class2::Callback method
virtual bool class2Method(int i);
}
在Class1.cxx
我:
bool Class1::class2Method(int i) {
if (i == 1) return true;
return false;
}
在另一个地方,我有:
IWantAClass2Callback((Class2::Callback)instanceOfClass1);
当我尝试编译时,出现以下错误:
MyApp.cxx In constructor 'MyApp()':
MyApp.cxx:55:55: error: 'Class2::Callback is an inaccessible base of Class1'
MyApp.cxx:55:55: error: cannot allocate an object of abstract type 'Class2::Callback'
Class2.h:16:10: note: because the following virtual functions are pure within 'Class2::Callback'
Class2.h:19:18: note: virtual bool Class2::Callback::class2Method(int)
我在做什么错?
这里是在Class2.h
定义的Class2::Callback
定义:
class Class2
{
public:
struct Callback {
virtual bool class2Method(int i) = 0;
};
}
加上'public'关键字后,我仍然得到同样的错误 – fredley 2012-01-18 12:50:39
然后,你需要向我们展示更多的代码。具体来说就是'Class2 :: Callback'的定义。 – 2012-01-18 12:52:09
我已经添加了代码 – fredley 2012-01-18 12:57:06