【发布时间】:2019-03-12 20:01:42
【问题描述】:
我有两个“接口”类:AbstractAccess 和AbstractPrint,以及AbstractRun 类从它们继承并使用它们的方法。
另外,我有两个接口实现:AbstractAccess 的访问器和AbstractPrint 的打印
#include <iostream>
using namespace std;
class AbstractAccess {
public:
virtual string access (void) = 0;
};
class AbstractPrint {
public:
virtual void print (string) = 0;
};
class AbstractRun : virtual public AbstractAccess, virtual public AbstractPrint {
public:
void run (void) {
print(access());
}
};
class Accessor : virtual public AbstractAccess {
public:
string access (void){
return name;
}
void setName(string name) {
this->name = name;
}
private:
string name;
};
class Print: public virtual AbstractPrint {
public:
void print (string s) {
cout << s << endl;
}
};
是否有任何方法可以将AbstractRun 中的接口转换为它们的实现,或者创建只使用 AbstractRun 的“run”方法但具有已实现接口的实现类 Run?
【问题讨论】:
-
我也不懂第一部分,但第二部分(如果我理解正确的话)很简单:
class Run: public virtual AbstractRun, public virtual Accessor, public virtual Print {...} -
@Beta 非常感谢。你已经正确理解并且你的食谱就像一个魅力。如果第二部分正在工作,则不需要第一部分。谢谢你更多的时间。
标签: c++ abstract-class multiple-inheritance