我们可以将这种结构转换为类型类/函数吗?
所以在结构上如此
struct RenderCastedDataFunctor
{
simpleRendererGraphElement* obj_;
RenderCastedDataFunctor(simpleRendererGraphElement* obj)
: obj_(obj) { }
void operator()(char* castedChar, int castedCharLength)
{
obj_->renderCastedData(castedChar, castedCharLength);
}
};
我们可以将simpleRendererGraphElement *转换为抽象类型,并将其在结构(renderCastedData
)中使用的函数名称也用于抽象吗?
所以我在charGenerator
类中有一个函数
template <typename Function>
void AddSubscriberToGeneratedData(Function f)
我想从不同的classes4ѭ类中传递它的功能
在一些simpleRendererGraphElement中使用该结构,我可以使用名为renderCastedData
的函数订阅
charGenerator->AddSubscriberToGeneratedData(RenderCastedDataFunctor(this));
我希望有一种方法能够传递抽象类函数,它将char*
和int
传递给AddSubscriberToGeneratedData
。怎么办这样的事情?
没有找到相关结果
已邀请:
1 个回复
玖料萄
使类抽象化,然后定义一个实现虚函数的具体类(从这个抽象类派生)。那将是一个更好的设计! 其余的似乎已经很好了。你没有做任何事情,因为你这样做:
我想,这里
代表指向具体类实例的指针。如果是这样,那应该工作! 编辑: 我明白这个想法有多好 我不知道如何实现它。那 这就是我要问的原因。 好的。这是一个例子:
这是你的抽象类,
是一个纯虚函数。现在你需要定义一个必须定义
函数的具体类。所以这里是:
完成! 现在你需要做的就是这个。修改
如下:
然后添加订阅者,
我认为它给了你一些想法,对吧?重要的一点是:使用
类型的指针,但用
初始化该指针。我想,你应该阅读有关虚函数和运行时多态的内容。那会对你有所帮助。