结构体 (struct)#
有时候 C++ 的内置类型 (整型、浮点型等) 不能满足我们的需求, 我们就需要自己定义新的类型.
结构体允许我们通过已有类型组合得到新的类型:
1struct Student {
2 int student_id; // 学号
3 double score; // 分数
4};
此后就可以像使用内置类型一样使用这个新的类型, 而组成该类型的成员可以用 .
访问:
1struct Student {
2 int student_id; // 学号
3 double score; // 分数
4};
5
6int main() {
7 Student student = {101, 59.9};
8 std::cout << student.student_id; // 输出学号 101
9 std::cout << student.score; // 输出分数 59.9
10
11 student.score = 60;
12 std::cout << student.score; // 输出分数 60
13}
你当然可以在组合得到的新类型基础上, 继续进行组合:
1struct Point {
2 int x;
3 int y;
4};
5
6struct Circle {
7 double radius; // 半径
8 Point center; // 圆心坐标
9};
交叉内容#
结构体与函数#
一个函数可能有多个返回值, 与其用一些奇怪的方法, 用结构体来解决显得更为直接:
1struct Symmetric_minus_result {
2 int lhs_minus_rhs;
3 int rhs_minus_lhs;
4};
5
6Symmetric_minus_result symmetric_minus(int lhs, int rhs) {
7 return {lhs - rhs, rhs - lhs};
8}