問題描述:
#include <iostream>
#include <string>
using namespace std;
struct mystruct
{
string my_str;
}
main()
{
mystruct one=
{
"zhao"
};
mystruct o=
{
"xiao"
};
cout<<one.my_str+o.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 o; 聲明了壹個mystruct類型的變量 o
one.my_str = "zhao"; 對one中的my_str變量負值
o.my_str = "xiao"; 對o中的my_str變量負值