【发布时间】:2013-05-07 10:42:40
【问题描述】:
#ifndef TEST_H
#define TEST_H
#include <iostream>
#include <string>
class A{
public:
virtual void test1() = 0;
virtual std::string test2() = 0;
};
class B : public A{
public:
void test1(){
std::cout << A::test2() << " World";
}
};
class C : public B{
public:
std::string test2(){
return "hello";
}
};
class C1 : public B{
public:
std::string test2(){
return "Sup";
}
};
#endif // TEST_H
我有一个只有纯虚方法的接口 A。我有一个抽象类想要实现test1 并使用test2 来实现test1。
现在是 C 和 C1 以及我实现 test2 的具体类
但我不能在 B 类做std::cout << A::test2() << " World";
错误:无法调用成员函数'virtual std::string A::test2()' 没有对象
我如何在 c++ 中做这样的事情?
【问题讨论】:
-
A和B根本不相关。所以你不能那样做。为了能够做到这一点B需要从A继承,我不确定这是否适合您的设计。 -
一个类要实现
A的接口,实际上需要继承自A。 -
是的,很抱歉打错了。
标签: c++