我创建了一个具有公共,私有和受保护变量的类电梯。另外,我写了一些方法。现在是一个问题,如何通过对象声明简化这些代码行。
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表达式必须具有常数值”。 也许我在某个地方犯了错误...
答案 0 :(得分:1)
这行没有意义:
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
的{{1}}或std::array
,每次创建新的push_back
对象时都可以。