C++ - 循环主重置对象
C++ - Looping main resetting objects
我在创建基本文本用户界面时遇到问题。为了保持文本界面循环,我调用main(),直到用户选择按 0 退出。
但是,这会重新创建我的 LinkedList 列表,我想将其保留为永久列表。我知道将其作为全局变量是一种不好的做法,那么我该如何解决这个问题呢?
int main() {
int choice, newLatitude, newLongitude;
string newName;
LinkedList list;
cout << "[1] Add a city n";
cout << "[2] Display list of cities n";
cout << "[0] Exit program n";
cin >> choice;
if (choice == 0) {
return 0;
}
else if (choice == 1) {
cout << "Enter city name: ";
cin >> newName;
cout << "Enter latitude: ";
cin >> newLatitude;
cout << "Enter longitude: ";
cin >> newLongitude;
City newCity(newName, newLatitude, newLongitude);
list.addNode(newCity);
}
else if (choice == 2) {
list.display();
}
else {
cout << "Invalid option, please try again n";
}
main();
return 0;
}
使用递归来执行此任务可能不是一个好主意。如果你想让它重复,你可能最好有一个while循环。http://msdn.microsoft.com/en-us/library/2aeyhxcd.aspx
while(true) 只要语句 (true) 为真,就会循环。又名永远。你也可以做一些类似while(choice != 0)
的事情,尽管这需要对代码进行轻微的返工。
int main() {
int choice, newLatitude, newLongitude;
string newName;
LinkedList list;
while(true)
{
cout << "[1] Add a city n";
cout << "[2] Display list of cities n";
cout << "[0] Exit program n";
cin >> choice;
if (choice == 0) {
return 0;
}
else if (choice == 1) {
cout << "Enter city name: ";
cin >> newName;
cout << "Enter latitude: ";
cin >> newLatitude;
cout << "Enter longitude: ";
cin >> newLongitude;
City newCity(newName, newLatitude, newLongitude);
list.addNode(newCity);
}
else if (choice == 2) {
list.display();
}
else {
cout << "Invalid option, please try again n";
}
}
return 0;
}
相关文章:
- 使用循环创建类对象
- 如何在C++中循环访问未知对象方法?
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 有没有办法在C++中循环访问对象的不同数据成员
- Pybind11:使用 for 循环使用 OpenMP 访问 python 对象
- 如何在 c++ 中使用 for 循环输出矢量中的所有对象
- 涉及全局对象的循环依赖C++
- c++ 循环访问对象列表并删除对象
- 循环访问对象列表 c++
- 在C++中使用循环创建多个对象
- 我想在 C++ 中使用 for 循环创建类对象
- 循环中本地对象的析构函数是否保证在下一次迭代之前被调用?
- 在 While 循环中重用对象的多线程
- C++ 在地图上循环 - 消失的对象
- 基于范围的 for 循环将对象移动到另一个容器中?
- 在游戏循环中创建类对象
- 访问类的 std::vector 与 for 循环中的 custum 类对象
- 如何通过C 中的类对象循环
- C++:外部对象循环引用
- 用对象循环向量