syntax error : missing ',' before '&'

来源:百度知道 编辑:UC知道 时间:2024/06/28 01:32:28
typedef struct _tag_User_Password
{
CString strUsername;
CString strPassword;

BOOL operator==(const USERCFG& user)
{
return (strUsername == user.strUsername && strPassword == user.strPassword);
}

}USERCFG, *LPUSERCFG;

编译会在BOOL operator==(const USERCFG& user)处报错

error C2143: syntax error : missing ',' before '&'
error C2059: syntax error : '&'

为什么呢 ?

typedef struct _tag_User_Password
{
CString strUsername;
CString strPassword;

BOOL operator==(const _tag_User_Password& user)
{
return (strUsername == user.strUsername && strPassword == user.strPassword);
}

}USERCFG, *LPUSERCFG;

在你声明这个函数的时候,typedef还没生效。

道理很简单,因为C++必须要先声明才能使用,你看看你USERCFG 这个结构,他声明是在使用之后的,所以你可以用 _tag_User_Password 来代替。
或者用前向引用。
class USERCFG ;