Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在运行时创建具有不同名称的对象?_C++ - Fatal编程技术网

C++ 在运行时创建具有不同名称的对象?

C++ 在运行时创建具有不同名称的对象?,c++,C++,我有一个班级叫大学。我希望创建班级部门的对象,班级大学有一个部门类型的向量。我的程序是读取一个文件,并根据给定的命令,调用不同的函数。我的程序是制作班级部门的多个对象,并将它们放入大学班级中命名为部门的向量中 我不明白如何使用不同的名称创建多个Department类型的对象 bool University::CreateNewDepartment(string depName, string depLoc, long depChairId) { if (depChairId == 0) //De

我有一个班级叫大学。我希望创建班级部门的对象,班级大学有一个部门类型的向量。我的程序是读取一个文件,并根据给定的命令,调用不同的函数。我的程序是制作班级部门的多个对象,并将它们放入大学班级中命名为部门的向量中

我不明白如何使用不同的名称创建多个Department类型的对象

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));