gpt4 book ai didi

c++ - 多重继承方便吗?

转载 作者:行者123 更新时间:2023-11-28 08:10:20 26 4
gpt4 key购买 nike

我想实现一个使用一些实用程序类的算法类。但是一个类可能需要其他实用程序类的成员变量或函数。所以不是
组合是不是更好地使用继承如下?

class A{
public:

void setA(int var){ a = var;}

int a;

};

class B{
public:
void foo(int var){
if (var==1){
//bla bla...
}else{
//bik bik...
}
};


class Algo : public A , public B{

public :

void run(){

setA(1);
foo(a);
}

};

最佳答案

如果 A 和 B 是真正的 IS-A 关系,您的 Algo 类应该只从 A 和 B 继承。如果您只是想使用 A 或 B 的功能,请考虑组合(或者至少私有(private)继承)。

例如,如果我想创建一个类,并且该类需要做一些日志记录,那么我的类有一个记录器,但它不是一个记录器。因此我不想从记录器继承,而是使用组合。

关于c++ - 多重继承方便吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9319524/

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