#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
但我不能std::cout << A::test2() << " World";
在B班做
错误:不能在没有对象的情况下调用成员函数 'virtual std::string A::test2()'
我将如何在 C++ 中做这样的事情?