我在g++ 4.1.2中到处都是这些错误消息,这一点也没有帮助:
<file>:<line>: error: expected primary-expression before 'int'
<file>:<line>: error: expected ';' before 'int'
<file>:<line>: error: invalid use of qualified-name '::SuccessCode'发生这种情况的代码段非常简单:
class Test
{
static Status debug_function(void)
{
return Status::SuccessCode(); // this would be <file>:<line> mentioned above
// and this one too:
// return Status::FailureCode("test");
}
};下面是状态代码(是的,它被正确地包含了,因为如果包含文件无效,我就会出错):
namespace CODES
{
enum Values { Success = 0, Failed = 1 };
}
class Status
{
private:
CODES::Values code;
string msg;
public:
Status(CODES::Values val, const string &i_msg ): code(val), msg(i_msg) {}
static Status SuccessCode(void)
{
return Status(CODES::Success, "");
}
static Status FailureCode(const string &fail_msg)
{
return Status(CODES::Failed, fail_msg);
}
};那么,这段代码有什么问题呢?并在VC++下正确编译!
编辑:实际上,SuccessCode和FailureCode的代码在*.cpp文件中。我将它们放入类声明中,因为错误消息仍然相同!
发布于 2012-05-22 14:41:30
如果没有完整的程序,我将不得不猜测。我的猜测是:您的程序中有一个#define Status int。
https://stackoverflow.com/questions/10704057
复制相似问题