error C2552: 'stu' : non-aggregates cannot be initialized with initializer list

时间:2022-01-13 20:39:24
#include<iostream>
#include<string>
using namespace std;
struct student 
{int num;
string name;
float score[3];
} stu={12345,"lifun",78.2,12.2,33.1};
int main()
{void print(student *);
student *pt=&stu;
print(pt);
return 0;
}
void print(student *p)
{cout<<p->num<<" "<<p->name<<" "<<p->score[0]<<" "<<p->score[1]<<" "<<p->score[2]<<endl;
}

13 个解决方案

#1


 error C2552: 'stu' : non-aggregates cannot be initialized with initializer list
这个是提示。

#2


就是说 你不能在结构图里面这样初始化float score[3];这个结构体成员
vc6?
换vs2008

#3


LZ用的是vc6吗?
我用visual studio编译,一点问题没有。
很多高手都说别用vc6了

#4


是的。

#5


珍爱生命 远离vc6

#6


该回复于2010-09-01 17:15:55被版主删除

#7


试试stu={12345,"lifun",{78.2,12.2,33.1}};

#8


怎么登陆了还看不到得分回复呢。我也遇到这个问题,正烦恼呢

#9


俺也遇此问题,求正解……

#10


同问,我也看不到得分回复。。

#11


同问  求正解……

#12


'stu' : non-aggregates cannot be initialized with initializer list   .
我也是这问题
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
struct Student{
int num;
string name;
char sex;
int age;
};
int main()
{
Student stu = {97001,"Lin Lin",'F',19};
cout<<"Num:"<<stu.num<<endl;
cout<<"Name:"<<stu.name<<endl;
cout<<"Sex:"<<stu.sex<<endl;
cout<<"Age:"<<stu.age<<endl;
return 0;
}
求解决,用的是vc6.0,不换编译器解决问题,求解

#13


一楼的问题,解决了。你把string name;改为char name[20];
string是字符串类,而你定义的是结构体,string name;也就是说定义了一个string类的对象name。改过之后,编译后出现

#1


 error C2552: 'stu' : non-aggregates cannot be initialized with initializer list
这个是提示。

#2


就是说 你不能在结构图里面这样初始化float score[3];这个结构体成员
vc6?
换vs2008

#3


LZ用的是vc6吗?
我用visual studio编译,一点问题没有。
很多高手都说别用vc6了

#4


是的。

#5


珍爱生命 远离vc6

#6


该回复于2010-09-01 17:15:55被版主删除

#7


试试stu={12345,"lifun",{78.2,12.2,33.1}};

#8


怎么登陆了还看不到得分回复呢。我也遇到这个问题,正烦恼呢

#9


俺也遇此问题,求正解……

#10


同问,我也看不到得分回复。。

#11


同问  求正解……

#12


'stu' : non-aggregates cannot be initialized with initializer list   .
我也是这问题
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
struct Student{
int num;
string name;
char sex;
int age;
};
int main()
{
Student stu = {97001,"Lin Lin",'F',19};
cout<<"Num:"<<stu.num<<endl;
cout<<"Name:"<<stu.name<<endl;
cout<<"Sex:"<<stu.sex<<endl;
cout<<"Age:"<<stu.age<<endl;
return 0;
}
求解决,用的是vc6.0,不换编译器解决问题,求解

#13


一楼的问题,解决了。你把string name;改为char name[20];
string是字符串类,而你定义的是结构体,string name;也就是说定义了一个string类的对象name。改过之后,编译后出现