首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中的struct能不能前导声明?解决方法

2012-03-09 
C++中的struct能不能前导声明?我有一个struct,定义在common.h中:ACE_TString是ACE中类似于std::string的类

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;
}
};//结尾要加;号

热点排行