C++中的struct能不能前导声明?
我有一个struct,定义在common.h中:ACE_TString是ACE中类似于std::string的类
struct ACCOUNT
{
ACE_TStringuser;
inttype;
ACCOUNT(){}
ACCOUNT(const char* pszid, int t)
{
user=ACE_TString(pszid);
type=t;
}
}
然后在一个user.h的文件中这样定义一个类:
struct ACCOUNT;
class UserI
{
public:
UserI(ACCOUNT&);
~UserI(void);
::std::string getAppid() const;
}
无法通过编译,报错如下:
error C2226: syntax error : unexpected type 'ACCOUNT '
error C2238: unexpected token(s) preceding '; '
请教这是哪里出了问题?
请教,多谢!!!
[解决办法]
类型后边要有分号
struct Type1
{
....
};
class Type2 {...};
[解决办法]
struct ACCOUNT
{
ACE_TStringuser;
inttype;
ACCOUNT(){}
ACCOUNT(const char* pszid, int t)
{
user=ACE_TString(pszid);
type=t;
}
};//一楼说的,,是这里加分号
[解决办法]
可以使用,但是只能使用指针,任何需要用到结构内部的情况下都必须有定义!
[解决办法]
struct ACCOUNT
{
ACE_TStringuser;
inttype;
ACCOUNT(){}
ACCOUNT(const char* pszid, int t)
{
user=ACE_TString(pszid);
type=t;
}
};//结尾要加;号