error C2552: 'public: static struct demo CMLDlg::general' : non-aggregates cannot be initialized with initializer list还有如果一个结构的各个分量都是字符串,这个结构(静态的)该怎么定义和初始化呢?
谢谢!
谢谢!
解决方案 »
- 请问和各位高手 如何将一个JPG图像文件的大小改变成一个指定值?
- ADO EXTENSION 绑定之后, 在AddNew操作中如何利用“自动编号”字段。
- CreateRemoteThread需要帮助哦
- 在线等!ASCLL码转化为对应的字符!
- 工具栏问题!
- 来看看这段代码,执行无错误,但不好用阿!!!
- 请问!哪有windows消息,宏 ,结构的书下载!
- vc6英文版汉化的是那些文件?!!!
- 麻烦问一下关于NetMeeting的开发问题,急,谢谢!!!
- 控件有消息循环吗?
- 很简单的载入位图的程序,看不懂,请教!
- 用CInternetSession,老是提示“与服务器的连接被重置”,怎么搞的?,头都晕了!!!!
struct demo
{
CString sky;
CString air;
CString hum;
CString wind;
CString water;
CString forecast;
};
static demo special;
static demo general;.cpp中
demo CMLDlg::general={"?","?","?","?","?","?"};
demo CMLDlg::special={"NULL","NULL","NULL","NULL","NULL","NULL"};
int a[3] = {0}; //valid
int a[3]; a[3] = {0}; //invalid
demo demo1 = {"NULL","NULL","NULL","NULL","NULL","NULL"};
这样是不行的
demo demo1;
demo1 = {"NULL","NULL","NULL","NULL","NULL","NULL"};
如:static demo special= {"NULL","NULL","NULL","NULL","NULL","NULL"};
否则你只能一个一个的去赋值了。
general是类的成员??对,可以吗?
照你的改了之后,它就不识别special和general了
demo::demo(CString str1, CString str2, ....)
{
sky = str1;
air = str2;
....
}
在类外定义类静态变量的时候不能用"={}",要使用(str1, str2).这样就可以了.
另外,即使写
demo demo1 = {"NULL","NULL","NULL","NULL","NULL","NULL"};
也是不合法的.在C++中结构体既等同于类,又要与C结构体相兼容.所以C++的结构是很糟糕的东西.
如果结构体内包含的都是C风格的数据成员"={}"是合法的,C++编译器把他当C风格结构看待.如果结构内包含类数据成员(可以是类和结构),那么"={}"就是不合法的,C++编译器把他当类看待.