我想编写一个关于每个人每个学期的类(class)的程序。我想定义一个名为CourseTable的数据类型,它是名为Course的结构的 vector ,但是在此结构中,我还有一个“prerequisites”变量,其类型为决定成为CourseTable。

typedef vector<Course> CourseTable ;
struct Course
{
  ....
  CourseTable prerequisites;
};

我将这两个声明放在任何一个顺序中都会出现编译错误。您对我有什么建议吗?

最佳答案

您需要在Course之前转发声明typedef vector<Course> CourseTable;。看起来像

struct Course;
typedef vector<Course> CourseTable;
struct Course
{
    CourseTable prerequisites;
};

10-08 03:53