我创建了一个带有公共(public)变量、私有(private)变量和 protected 变量的类 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);
创建的变量的名称应该完全不同。
您可能想创建一个 std::vector
或 std::array
你可以push_back
每次创建一个新的Elevator
对象。
关于c++ - 使用循环创建类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52952618/