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");
}
};
这里为状态代码( and yes it squote including, 因为如果包含的文件无效, 我就会有错误 em> ):
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++进行正确编译!
事实上,成功代码和失败代码的代码在 *.cpp 文件中。 我把它们放入课堂声明, 因为错误信息仍然相同!