这是我的类层次结构。
我已经声明了以下抽象接口类,它只有一个功能:
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()
函数时,我看到 log "AuthenticateIn::CreateJson"
。我想找到一种调用方法CreateJson()
,它将为所有基类调用。
我知道我可以this->UIData::CreateJson()
从AuthenticateIn
类CreateJson
函数中调用,但是有没有其他方法可以做到这一点,一些自动的方法?谢谢 !!