创建带参数的类实例

use*_*518 2 c++ constructor class

这是类中的构造函数:

Course(int courseId, Instructor instructor, string courseName, string dept) 
    : courseId(courseId)
    , instructor(instructor)
    , courseName(courseName)
    , dept(dept)
{ };
Run Code Online (Sandbox Code Playgroud)

我的问题是第二个参数 Instructor 讲师。这究竟是什么意思,因为我从未见过像这样混合两个类?

Jos*_*eld 5

这意味着您需要将一个Instructor对象传递给它,就像第一个参数表示它接受一个int对象,第三个和第四个接受string对象一样。例如:

int courseId = 0;
Instructor instructor; // Here we default construct an Instructor
std::string courseName = "Foo";
std::string dept = "Bar";

Course my_course(courseId, instructor, courseName, dept);
//                         ^^^^^^^^^^
//              Here the Instructor is being passed
Run Code Online (Sandbox Code Playgroud)

该声明instructor仅在Instructor具有默认构造函数时才有效,我猜它没有。如果构造函数Instructor有一些参数,那么你需要像这样传递它们:

Instructor instructor(some, params, here);
Run Code Online (Sandbox Code Playgroud)