c++ 结构体的构造函数

结构体中构造函数

1、不使用构造函数

 1 #include<iostream>
 2 
 3 struct student {
 4     
 5     int age;
 6     std::string gender;
 7 
 8 }Liu;
 9 
10 int main() {
11     Liu.age = 20;
12     Liu.gender = "man";
13 
14     std::cout << Liu.age << '\n' << Liu.gender;
15 
16     return 0;
17 
18 }

通过上述代码对结构体变量单独赋值,也可以整体赋值:

 1 Liu = { 20, "man" }; 

当变量过多的时候不方便,因此使用构造函数。

2、使用构造函数

 1 #include<iostream>
 2 #include<string>
 3 
 4 struct student {
 5     
 6     int age;
 7     std::string gender;
 8 
 9     // 单独赋值
10     student(int _age) : age(_age) {}
11     student(std::string _gender) : gender(_gender) {}
12     // 同时赋值
13     student(int _age, std::string _gender) : age(_age), gender(_gender) {}
14 
15 
16 };
17 
18 int main() {
19     student Liu(20, "man");
20     std::cout << Liu.age << '\n' << Liu.gender;
21     return 0;
22 }

这样可以单独初始化某些变量或者全部变量。

3、默认构造函数和自定义构造函数

 1 #include<iostream>
 2 #include<string>
 3 
 4 struct student {
 5     
 6     int age;
 7     std::string gender;
 8 
 9     // 默认构造函数
10     student(){};
11 
12     // 单独赋值
13     student(int _age) : age(_age) {}
14     student(std::string _gender) : gender(_gender) {}
15     // 同时赋值
16     student(int _age, std::string _gender) : age(_age), gender(_gender) {}
17 
18 
19 }Liu;
20 
21 int main() {
22     Liu = student(20, "man");
23     std::cout << Liu.age << '\n' << Liu.gender;
24     return 0;
25 }

如果将默认构造函数和自定义构造函数同时使用,就可以不初始化而直接定义变量。

 

posted on 2024-05-21 14:53  DLst_liu  阅读(222)  评论(0编辑  收藏  举报