これが私のクラスの階層です。
次の抽象インターフェイス クラスを宣言しました。関数は 1 つだけです。
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";
}
};
から継承するもう1つのクラスがあります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