结构体的初始化(构造函数)
struct作为数据结构的实现体,它默认所有结构成员默认都是Public,而类的变量和常量数则默认为Private,不过其他类成员默认都是Public。
C++结构体的继承默认是public,而c++类的继承默认是private。
所以结构体中使用构造函数也是合理的。
1 typedef struct Test{ 2 int id; 3 string name; 4 // 用以不初始化就构造结构体 5 Test(){} ; 6 //只初始化id 7 Test(string _name) { 8 name = _name; 9 } 10 //同时初始化id,name 11 Test(inr _id,string _name): id(_id),name(_name)}{}; 12 };
例子:
1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 typedef struct Test{ 7 int id; 8 int name; 9 // 用以不初始化就构造结构体 10 Test(){} ; 11 //只初始化id 12 Test(int _name) { 13 name = _name; 14 } 15 //同时初始化id,name 16 Test(int _id,int _name): id(_id),name(_name){}; 17 }Test; 18 19 Test test[10]; 20 int main(){ 21 int a,b,num,i; 22 for(a=1,b=1,num=0;b<=10;a++,b++,num++){ 23 test[num] = Test(a,b); 24 } 25 for(i=0; i<10;i++) 26 cout<<test[i].id<<" "<<test[i].name<<endl; 27 return 0; 28 }