C++ 使用循环创建类对象

C++ 使用循环创建类对象,c++,class,methods,C++,Class,Methods,我创建了一个包含公共、私有和受保护变量的类电梯。还有,我写了一些方法。现在有一个问题,我如何用对象简化这些代码行 int main() { Elevator ElevatorObject("NAME", 2, 3, 4, 5); ElevatorObject.get_name(); ElevatorObject.get_loadCapacity(); ElevatorObject.get_MotorPower(); ElevatorObject.get_h

我创建了一个包含公共、私有和受保护变量的类电梯。还有,我写了一些方法。现在有一个问题,我如何用对象简化这些代码行

int main()
{
    Elevator ElevatorObject("NAME", 2, 3, 4, 5);
    ElevatorObject.get_name();
    ElevatorObject.get_loadCapacity();
    ElevatorObject.get_MotorPower();
    ElevatorObject.get_height();
    ElevatorObject.get_witdth();

    Elevator ElevatorObject1("NONAME", 5, 4, 3, 2);
    ElevatorObject1.get_name();
    ElevatorObject1.get_loadCapacity();
    ElevatorObject1.get_MotorPower();
    ElevatorObject1.get_height();
    ElevatorObject1.get_witdth();

    system("pause");
    return 0;
}
我想把所有需要的对象名放入一个字符串数组,然后在循环中实现它。但是,对象参数中会有相同的值

像这样

string ObjectName[3] = { "ElevatorObject1", "ElevatorObject2", "ElevatorObject3" };

int main()
{
    string ObjectName[3] = { "ElevatorObject1", "ElevatorObject2", "ElevatorObject3" };

    for (int i = 0; i < 3; i++) 
    {
        Elevator ObjectName[i]("NEMA", 2, 3, 4, 5);
        ObjectName[i].get_name();
        ObjectName[i].get_loadCapacity();
        ObjectName[i].get_MotorPower();
        ObjectName[i].get_height();
        ObjectName[i].get_witdth();
    }

    system("pause");
    return 0;
}
string ObjectName[3]={“ElevatorObject1”、“ElevatorObject2”、“ElevatorObject3”};
int main()
{
字符串ObjectName[3]={“ElevatorObject1”、“ElevatorObject2”、“ElevatorObject3”};
对于(int i=0;i<3;i++)
{
电梯对象名称[i](“NEMA”,2、3、4、5);
ObjectName[i]。获取_name();
ObjectName[i]。获取_加载容量();
ObjectName[i]。get_MotorPower();
ObjectName[i]。获取高度();
ObjectName[i]。get_Width();
}
系统(“暂停”);
返回0;
}
出现错误“C2131表达式必须具有常量值”。
也许我在某个地方犯了错误…

这句话毫无意义:

Elevator ObjectName[i]("NEMA", 2, 3, 4, 5);
你打电话的意思好像是这样的:

Elevator "ElevatorObject1"("NEMA", 2, 3, 4, 5);
这显然是行不通的。相反,您可能想提供以下名称:

Elevator elevator(ObjectName[i], 2, 3, 4, 5);
创建的变量的名称应该完全是其他名称


您可能想创建一个
std::vector
std::array
您可以在每次创建新的
电梯
对象时将
推回

电梯对象名[i](“NEMA”,2,3,4,5)
这意味着您正试图为每个大小为
i
ElevatorObject.get_name()的循环创建一个新数组很奇怪。你是说,
print\u name()
input\u name()
?@johnnymapp已修复。谢谢