使用循环创建类对象
Creating class objects with loops
>我创建了一个包含公共、私有和受保护变量的类 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_back
的std::vector
或std::array
。
相关文章:
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 具有包含其他对象的类的对象创建顺序
- 为什么我们再次从结构对象创建结构变量?
- 将对象创建为全局/静态对象会崩溃,而本地对象不会崩溃
- 如何创建一个对象创建函数,该函数将由与其关联的名称调用?
- 如何为自定义模板对象创建专门的函数模板
- 对象创建错误的C++矢量
- 如何为Python Swigged C++对象创建和分配回调函数
- 在 C++ 中为 C 样式对象创建一个透明包装类
- 此类模板的对象创建如何工作?
- C++ 中的对象创建类型有什么区别?
- 未知大小的数组作为类成员,用于在运行时(对象创建时间)创建数组的对象
- 如何仅通过父类对象限制对象创建
- 在正确性或良好的代码结构方面,这种动态对象创建看起来如何
- 无法将类对象创建为另一个类的成员
- 如何从现有基类对象创建派生类对象
- 在 DTor 之前删除的静态对象创建的线程?
- C++:定义多个构造函数时的对象创建/销毁序列
- 从对象创建矢量包装器,该对象只允许使用索引访问向量
- 是否可以为CPP中的对象创建一组指针