为什么我的结构中不能用string类呢?帮忙指点一下吧

来源:百度知道 编辑:UC知道 时间:2024/05/09 09:33:33
#include <iostream>
#include <string>
using namespace std;
struct mystruct
{
string my_str;
}
main()
{

mystruct one=
{
"zhao"
};
mystruct two=
{
"xiao"
};
cout<<one.my_str+two.my_str<<endl;
}
error C2552: 'one' : non-aggregates cannot be initialized with initializer list

struct 在c++里,只是若干个多种数据类型数据的一个集合体。类似于class,不同之处在于struct里不能定义任何功能函数。

使用struct的时候,和可直接把它看作变量就可以了。
楼主初始化的过程是错误的。不可以这样对struct类型负值。因为若mystruct中有多个string变量my_str, my_str2, my_str3.....,那么
mystruct one= {"zhao"}; 一句中的"zhao"到底应该负给那个变量呢?

struct 类型可如下使用:

mystruct one; //声明了一个mystruct类型的变量 one
mystruct two; //声明了一个mystruct类型的变量 two
one.my_str = "zhao"; //对one中的my_str变量负值
two.my_str = "xiao"; //对two中的my_str变量负值

c++编译器没有为struct设定初始化的语句
可以写成
mystruct one;
one.my_str = "zhao";