我有2个班级,他们有复合关系。如何将该类作为向量包含在另一个类中?谁能告诉我如何初始化矢量?
class Student{
int id;
string name;
public:
Student(int id = 0, string name = "NA")
: id(id), name(name) {}
int getId() {return id;}
string getName() {return name;}
};
class Faculty{
int id;
string name;
vector<Student> student;
public:
Faculty(int id = 0, string name = "NA", vector<Student> student)
{
id = id;
name = name;
student = student;
}
int getId() {return id;}
string getName() {return name;}
};
答案 0 :(得分:0)
如果要对数据成员和构造函数参数使用相同的标识符,则需要使用初始化列表初始化它们 - 而不是在函数体中。
class Faculty{
int id;
string name;
vector<Student> student;
public:
Faculty(int id = 0, string name = "NA", vector<Student> student={})
: id(id)
,name(name)
,student(student)
{}
};
您可以为具有空初始化列表的向量提供默认参数。
如果您只打算提供参数默认值的某些,那么它们必须在没有指定默认值的参数之后。这就是您的示例代码无法编译的原因。