gpt4 book ai didi

c++ - 实现者有细微差别的抽象类

转载 作者:太空狗 更新时间:2023-10-29 21:49:42 26 4
gpt4 key购买 nike

在当前项目中,我有名为 BlahManager 的类和名为 BlahController 的类,定义如下:

class BlahController
{
public:

void doSomething(int x, float y){
// do the work
}
void doOtherThing(char a, char* b, int c){
// do the work
}
}

class BlahManager
{
public:
BlahController m_controllers[5];

void doSomething(int blahIndex, int x, float y){
m_controllers[blahIndex].doSomething(x,y);
}
void doOtherThing(int blahIndex, char a, char* b, int c){
m_controllers[blahIndex].doOtherThing(a,b,c);
}
}

他们是否只制作一次定义函数 doSomethingdoOtherthing 的抽象类,并让类 Manager 和 Controller 都实现它?

我想这样做是为了强制管理器和 Controller 之间的函数名称/参数相似。

最佳答案

不,你不应该。

BlahController::doSomething 有 2 个参数,而 BlahManager::doSomething 有 3 个参数。所以你不能有一个抽象父类强制两个类实现相同的功能,因为它们是同一个函数。

此外,您甚至不应该这样做。这些功能不做类似的工作。例如,如果您为 class Circleclass Triangle 绘制了 draw,那么它们正在执行类似的工作。但在这里,一个人在执行一项工作,而另一个人在管理它。所以,即使函数签名相似,我也永远不会让它们从共同的父级继承!

关于c++ - 实现者有细微差别的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892328/

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