【发布时间】:2018-10-23 15:21:11
【问题描述】:
我创建了一个具有公共、私有和受保护变量的 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);这意味着您正在尝试创建一个新数组,每个循环的大小为i -
ElevatorObject.get_name();很奇怪。你是说print_name(),input_name()吗?