使用循环创建类对象

Creating class objects with loops

本文关键字:对象 创建 循环      更新时间:2023-10-16

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

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

出现错误"C2131 表达式必须具有常量值"。 也许我在某处犯了一个错误...

这一行没有意义:

Elevator ObjectName[i]("NEMA", 2, 3, 4, 5);

你打电话好像你的意思是这样的:

Elevator "ElevatorObject1"("NEMA", 2, 3, 4, 5);

这显然是行不通的。相反,您可能打算提供名称:

Elevator elevator(ObjectName[i], 2, 3, 4, 5);

创建的变量的名称应该完全是其他名称。

您可能打算创建一个每次创建新的Elevator对象时都可以push_backstd::vectorstd::array