我用谷歌搜索了这条错误消息,但找不到与我的案例的关系。
我试图制作一个汽车抽象工厂
:
#include <iostream>
using namespace std;
class IFactory
{
public:
enum FACTORIES { MERCEDES, AUDI, SKODA };
virtual const char* getCar() = 0;
static IFactory* createFactory(FACTORIES factory)
{
if(factory == MERCEDES)
return new MercedesFactory;
if(factory == AUDI)
return new AudiFactory;
else
return new SkodaFactory;
}
};
class AudiFactory : public IFactory
{
public:
const char* getCar()
{
return "Audi";
}
};
class MercedesFactory : public IFactory
{
public:
const char* getCar()
{
return "EClass";
}
};
class SkodaFactory : public IFactory
{
public:
const char* getCar()
{
return "Octavia";
}
};
我有 3 个错误:
error C2061: syntax error : identifier 'MercedesFactory'
error C2061: syntax error : identifier 'AudiFactory'
error C2061: syntax error : identifier 'SkodaFactory'
在线:
return new MercedesFactory
return new AudiFactory
return new SkodaFactory
(每行中的每个错误)。
你能帮我找出问题所在吗?提前致谢。
最佳答案
您正试图在编译器看到它们的定义之前创建您的类。将 createFactory 函数的主体移动到类定义下方,最好是在源文件中。无论如何,您应该避免将整个函数放在类中。
关于c++ - 语法错误 : identifier `MercedesFactory` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17960602/