我想编写一个关于一个人每学期可以参加的课程的程序。我想定义一个名为 CourseTable 的数据类型,它是一个名为 Course 的结构体的向量,但在这个结构体中我还有一个“先决条件”变量,它的类型是决定成为CourseTable。
typedef vector<Course> CourseTable ;
struct Course
{
....
CourseTable prerequisites;
};
Run Code Online (Sandbox Code Playgroud)
在我放置这两个声明的任一顺序中,我都遇到编译错误。您对我应该做什么有什么建议吗?
尝试在结构中放置一个别名:
struct Course {
typedef std::vector<Course> CourseTable;
CourseTable prerequisites;
};
Run Code Online (Sandbox Code Playgroud)
但是,更多的 C++-ish 解决方案是使用using关键字作为类型别名:
struct Course {
using CourseTable = std::vector<Course>;
CourseTable prerequisites;
};
Run Code Online (Sandbox Code Playgroud)
或转发声明struct Course如下:
struct Course;
using CourseTable = std::vector<Course>;
struct Course {
CourseTable prerequisites;
};
Run Code Online (Sandbox Code Playgroud)