В моем заголовочном файле для Class1
у меня есть:
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::Callback
, как определено в Class2.h
:
class Class2
{
public:
struct Callback {
virtual bool class2Method(int i) = 0;
};
}