vc里结构体编译问题,..........高手留步
以下代码在DEV能通过,在VC++6.0出现
error C2552: 'hsarm1' : non-aggregates cannot be initialized with initializer list
error C2552: 'hsskill1' : non-aggregates cannot be initialized with initializer list
请问下是怎么回事,应该怎么改......谢了
#include <iostream>#include <string>#include <iterator>#include <map>#include <fstream>#include <vector>#include <stdlib.h>using namespace std;typedef map<string, int> mup;typedef struct { string first; int second;} key;typedef struct { string name; int harm;//伤害 int money;//钱或熟练度 int addmp;//内力 int adddefen;//加防 int delmp;//损耗内力; string sname;//门派名字} Wea;//Wea weapon[W];/*istream& operator>>(istream& sin,Wea& w){ sin>>w.name>>w.harm>>w.money>>w.addmp>>w.adddefen>>w.delmp; if (!sin) w=Wea(); return sin;}*/ostream& operator<<(ostream& sout,const Wea& w){ sout<<w.name<<" 攻:"<<w.harm<<" 熟练度:"<<w.money<<" 门派:"<<w.sname<<"\t"; return sout;}typedef struct { string doorname; vector<key> doorarm; vector<Wea> doorskill;// vector<Rose> doornpc;}Door;int main(){Door husa; husa.doorname="华山";//华山武器key hsarm1={"华山剑", 2};//key hsarm2={"华山刀", 2};//key hsarm3={"君子剑", 10};//key hsarm4={"东升华山", 60};husa.doorarm.push_back(hsarm1);//husa.doorarm.push_back(hsarm2);//husa.doorarm.push_back(hsarm3);//husa.doorarm.push_back(hsarm4);//华山武功Wea hsskill1={"华山刀法", 0, 5, 1, 5};/*Wea hsskill2={"乾坤刀法", 0, 8, 2, 8};Wea hsskill3={"反两仪刀法", 0, 10, 5, 10};Wea hsskill4={"华山剑法", 0, 5, 1, 5};Wea hsskill5={"夺剑三仙剑", 0, 6, 2, 6};Wea hsskill6={"狂风快剑", 0, 8, 4, 8};Wea hsskill7={"独孤九剑", 0, 20, 15, 20};Wea hsskill8={"长拳十段锦", 0, 5, 1, 5};Wea hsskill9={"伏虎掌", 0, 8, 3, 8};Wea hsskill10={"劈石破玉拳", 0, 9, 5, 9};Wea hsskill11={"华山内功", 0, 10, 1, 0};Wea hsskill12={"华山心法", 0, 20, 5, 0};Wea hsskill13={"紫霞神功", 0, 30, 10, 0};Wea hsskill14={"华山身法", 0, 5, 5, 0};]Wea hsskill15={"独孤九剑总决", 0, 30, 20, 25};*/husa.doorskill.push_back(hsskill1);/*husa.doorskill.push_back(hsskill1);husa.doorskill.push_back(hsskill2);husa.doorskill.push_back(hsskill3);husa.doorskill.push_back(hsskill4);husa.doorskill.push_back(hsskill5);husa.doorskill.push_back(hsskill6);husa.doorskill.push_back(hsskill7);husa.doorskill.push_back(hsskill8);husa.doorskill.push_back(hsskill9);husa.doorskill.push_back(hsskill10);husa.doorskill.push_back(hsskill11);husa.doorskill.push_back(hsskill12);husa.doorskill.push_back(hsskill13);husa.doorskill.push_back(hsskill14);husa.doorskill.push_back(hsskill15);*/ cout<<husa.doorskill[0]; Door ba=husa; cout<<ba.doorskill[0]; while(1); return 0; }