C++编译错误 — error: ‘xxx‘ declared as a ‘virtual‘ field

编译出错代码段:

class AbstractFoodFactory
{
    
    
public:
    virtual Vegetable *getVegetable(string type) = 0;
    virtual Fruit *getFruit(string type) = 0;
};

出现错误:

D:\CodeBlockPrj\AbstractFactoryMode\abstractFoodFactory.h|12|error: 'getVegetable' declared as a 'virtual' field

尝试网上搜索,一堆乱七八糟的没解决。
当把错误代码纯虚函数的返回值改成变量时再次编译出现以下错误:

D:\CodeBlockPrj\AbstractFactoryMode\abstractFoodFactory.h|12|error: 'string' has not been declared|

猜测error: 'xxx' declared as a 'virtual' field可能是由于string没找到引起的。
string在C++中是一个类,包含在std命名空间中。

类前面加上:

using namespace std;

编译通过。

猜你喜欢

转载自blog.csdn.net/qq_36413982/article/details/108301250