【发布时间】:2013-02-12 20:18:44
【问题描述】:
这是我的类层次结构。
我已经声明了以下抽象接口类,它只有一个功能:
class IAuthenticator
{
public:
virtual void CreateJson() = 0;
};
在我创建更多类'UIData'并从接口类继承它之后,在这种情况下:
class UIData : public IAuthenticator
{
protected:
UIData() : mWindowHandle(0)
{ /* Constructor do nothing. **/ }
private:
integer mWindowHandle;
public:
void CreateJson()
{
std::cout<<"UIData::CreateJson\n";
}
};
我还有一个继承自 UIData 的类
class AuthenticateIn : public UIData
{
private:
string mOrigin;
string mLogoURL;
string mUserID;
public:
void CreateJson()
{
std::cout<<"AuthenticateIn::CreateJson\n";
}
};
问题
在我的主函数中,我编写了这样的代码。
int main()
{
AuthenticateIn* ai = new AuthenticateIn();
ai->CreateJson();
}
当我调用CreateJson() 函数时,我看到了日志"AuthenticateIn::CreateJson"。我想找到一种方法来调用CreateJson(),它将为所有基类调用。
我知道我可以从AuthenticateIn 类CreateJson 函数调用this->UIData::CreateJson() 来做到这一点,但是有没有其他方法可以做到这一点,一些自动的方法?谢谢!!
【问题讨论】:
标签: c++ abstract-class multiple-inheritance virtual-functions