结构体初始化的问题,有兴趣的筒子请进来。
我在用别人定义的一个结构体CS,这个结构体的形式如下:
typedef struct
{
uInt32u32Size;
int64i64MaxMemory;
...
}CS,*CS1;
我在App.h中用到CS的一个结构体,
class App
{
public:
CS cs;
}
然后我在App.cpp中给CS初始化
App::App()
{
cs = {1,1};
}
编译结果报错
error C2059: syntax error : '{ '
error C2143: syntax error : missing '; ' before '{ '
error C2143: syntax error : missing '; ' before '} '
上网搜了一下,如果改变结构体,在结构体中添加一个构造函数,可以解决初始化的问题,但是我这个结构体是别人定义了的,我无法修改,请问还有比较好的办法吗?
请指点。
[解决办法]
写个全局的Init_CS函数也需要改变结构体???
[解决办法]
对不起,我上面说的可能不对, 好像结构体可以像那样初始化的.
你的问题估计是,在类内, CS cs; 那个结构体已经创建了, 你再用cs={1,1}; 就不对了.
如果两句并到一起, 就没问题。 CS cs ={1,1}; 编译没有问题。