编译出错代码段:
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;
编译通过。