我有一个名为大学的课程。我希望创建类Department的对象,类University有一个Department类型的向量。我的程序是读取一个文件,并根据给出的命令调用不同的函数。我的程序是创建类Department的多个对象,并将它们放入大学类中名为Departments的向量中。
我不明白如何使用不同的名称创建多个Department类型的对象。
bool University::CreateNewDepartment(string depName, string depLoc, long depChairId)
{
if (depChairId == 0)
//Department ___(depName, depLoc, depChairId);
//Departments.pushback(___)
return true;
}
___是占位符,表示正在创建的Department对象的名称。我如何制作它,以便每次创建时都有不同的名称?谢谢。
答案 0 :(得分:1)
您正在混合变量名称与数据(这些变量中包含的内容)。
变量名称并不代表任何东西,它只是用于引用代码中某处的特定占位符,而数据是您通常修改的内容。
所以:
Department department = Department(depName, location, chairID);
departments.push_back(department);
非常好。 department
只是在函数内创建的部门的本地名称。 depName
是另一个变量,它将包含真实姓名,即std::string
(例如"Nice Department"
),它是真实数据。
答案 1 :(得分:0)
定义Department
这样的东西:
class Department
{
public:
Department(const std::string& name, const std::string& location, long chairId)
: name_(name)
, location_(location)
, chairId_(chairId)
{
}
// probably want accessors to get the variables ...
private:
std::string name_;
std::string location_;
long chairId_;
};
然后在University::CreateNewDepartment
做
departments.push_back(Department(depName, depLoc, depChairId));
您的University
课程需要std::vector<Department>
名为departments
的成员,等等。