gpt4 book ai didi

c++ - 通过基类抽象方法调用

转载 作者:搜寻专家 更新时间:2023-10-31 02:07:31 25 4
gpt4 key购买 nike

<分区>

我有一个接口(interface),用户从中派生出多个我不知道的类,但我仍然想调用这些派生类的通用方法 Run()。

Event 类旨在成为一个接口(interface),因此我知道如何调用我的 unknown UserEvents 派生类,因为它们都必须具有Run() 方法实现了。

我目前有一些代码并收到一个错误,提示 CallEvent 无法分配抽象事件。我了解错误,但不知道如何着手正确执行。

这是一些最小的代码示例 ( WandBox ):

#include <iostream>

class Event
{
public:
virtual void Run(int Param) = 0;
};

// This is a user event and I have no idea what the class name is,
// but I still have to call it's method Run() that is common to the interface "Event"
class UserEvent : public Event
{
public:
virtual void Run(int Param) { std::cout << "Derived Event Dispatched " << Param << std::endl;};
};

// This parameter is of pure abstract base class Event because
// I have no idea what my user class is called.
void CallEvent(Event WhatEvent)
{
WhatEvent.Run(123);
};

int main()
{
std::cout << "Hello World!" << std::endl;
UserEvent mE;
CallEvent(mE);
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com