C++ 在运行时创建具有不同名称的对象?
我有一个班级叫大学。我希望创建班级部门的对象,班级大学有一个部门类型的向量。我的程序是读取一个文件,并根据给定的命令,调用不同的函数。我的程序是制作班级部门的多个对象,并将它们放入大学班级中命名为部门的向量中 我不明白如何使用不同的名称创建多个Department类型的对象C++ 在运行时创建具有不同名称的对象?,c++,C++,我有一个班级叫大学。我希望创建班级部门的对象,班级大学有一个部门类型的向量。我的程序是读取一个文件,并根据给定的命令,调用不同的函数。我的程序是制作班级部门的多个对象,并将它们放入大学班级中命名为部门的向量中 我不明白如何使用不同的名称创建多个Department类型的对象 bool University::CreateNewDepartment(string depName, string depLoc, long depChairId) { if (depChairId == 0) //De
bool University::CreateNewDepartment(string depName, string depLoc, long depChairId)
{
if (depChairId == 0)
//Department ___(depName, depLoc, depChairId);
//Departments.pushback(___)
return true;
}
___是正在创建的部门对象名称的占位符。如何使它在每次创建时都有不同的名称?谢谢。您将变量名与数据(这些变量中包含的数据)混合在一起 变量名并没有任何意义,它只是用来指代代码中某个特定的占位符,而数据是您通常修改的 因此:
很好<代码>部门只是在函数中创建的部门的本地名称
depName
是另一个变量,它将包含实名,实名是一个std::string
(例如“Nice Department”
),它是真实数据。定义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
do
departments.push_back(Department(depName, depLoc, depChairId));
你的
大学
类需要有一个名为部门
的std::vector
成员等。你认为当你离开自动变量的作用域时,它会发生什么?你是指depChairId吗?那么它根本就不会创建对象?澄清一下,根据您目前的理解,同名会有什么危害?如果我们使用名称测试作为ex。我很困惑如何更改对象中的特定变量,如test。location
否,“我很困惑如何…”是一种困惑,而不是伤害或理解。根据你目前的理解,伤害是什么?假设我创建了第二个名为department的对象。不会覆盖上一个对象吗?如果对象的名称相同,我以后会如何修改对象的值,例如department.location
?@JoshuaManero我真的不知道如何用答案中合适的东西来消除你所有的误解。。。请继续读你的书(或你用来学习的东西)。变量(其中一个)的值和名称之间的差异,作用域的含义,映射是什么…@deviantfan在阅读了我的教科书和课堂讲稿后,我来到这里作为最后的手段。我不知道如何创建多个同名对象,然后在以后修改它们。也许制作对象,将其放置在向量中,然后通过向量中的点引用它<代码>部门[0]是否为ex?
departments.push_back(Department(depName, depLoc, depChairId));