结构内部的结构

mxy*_*xyz 0 c++ arrays struct

我有结构

struct Course{
  int cId;
  string courseName;
};
Run Code Online (Sandbox Code Playgroud)

我想为每门课程添加学生.我想在结构化课程中定义另一个结构

struct Course{
      int cId;
      string courseName;
      struct Student{
         int sId;
         string studentName;
      };
    };
Run Code Online (Sandbox Code Playgroud)

如果我像这样定义struct我怎么能用呢?我有Course * cptr = new Course[1]; 使用结构课程.我怎样才能将学生添加到指定的cId?

jua*_*nza 5

你的Course不包含Student.它只定义了该名称的结构,即类型Course::Student.对于包含另一种类型的实例的类型,您只需声明一个成员变量:

struct Student { .... };

struct Course
{
  ....
  Student student;
};
Run Code Online (Sandbox Code Playgroud)

如果您希望每个课程持有多个课程Student,那么您可以使用容器.在缺乏更多信息的情况下,最佳候选人是std::vector:

struct Course
{
  ....
  std::vector<Student> students;
};
Run Code Online (Sandbox Code Playgroud)