C++如何通过循环无限创建类对象 输入指定值时终止运行
解决方法
你只需给main函数的对象执行逻辑套一层死循环即可,无需修改头文件和实现文件的现有逻辑,修改后的驱动文件代码如下:
#include <iostream> #include "square.h" using namespace std; int main() { // 无限循环,每次迭代创建一个新的square对象 while(true) { square currentSquare; currentSquare.setSide(); currentSquare.calcArea(); currentSquare.calcPerimeter(); currentSquare.showData(); // 可选:添加分割线区分不同对象的输出结果 cout << "------------------------" << endl; } return 0; }
实现逻辑说明
每次进入循环体都会实例化一个全新的currentSquare局部对象,走完当前次循环的所有逻辑后,这个局部对象会被自动销毁,下一次循环再创建完全独立的新对象,完全符合无限创建类对象的需求。你原有setSide函数中已经实现了输入-1直接终止程序的逻辑,无需额外添加循环终止判断。
可选优化(保持类独立性)
如果后续你不希望在类成员函数中调用exit终止程序,可以做如下调整:
- 修改
setSide返回值为bool类型,输入-1时返回false,合法输入返回true,去掉类方法里的exit调用 - 将main函数的循环逻辑改为判断
setSide返回值,返回false时直接break退出循环即可
内容的提问来源于stack exchange,提问作者Conrad Speak
相关产品推荐
相关产品推荐

