结构体 (struct)

结构体 (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}

相关解答#