在复合 class 中使用另一个 class 作为向量
Using another class as vector in a composite class
我有2个class,它们是复合关系。如何将 class 作为向量包含在另一个 class 中?谁能告诉我如何初始化向量?
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;}
};
如果您要对数据成员和构造函数参数使用相同的标识符,则需要使用初始化列表来初始化它们——而不是在函数体中。
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)
{}
};
您可以为具有空初始化列表的向量提供默认参数。
如果您只打算给一些 参数默认值,它们必须在没有指定默认值的参数之后。这就是您的示例代码无法编译的原因。
我有2个class,它们是复合关系。如何将 class 作为向量包含在另一个 class 中?谁能告诉我如何初始化向量?
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;}
};
如果您要对数据成员和构造函数参数使用相同的标识符,则需要使用初始化列表来初始化它们——而不是在函数体中。
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)
{}
};
您可以为具有空初始化列表的向量提供默认参数。
如果您只打算给一些 参数默认值,它们必须在没有指定默认值的参数之后。这就是您的示例代码无法编译的原因。