#include #include #include #include "Person.h" #include "PersonException.h" #include using std::cin; using std::cout; using std::string; using std::exception; int main() { std::vector people; string namePrompt = "Enter name: "; string name; string agePrompt = "Enter age: "; int age; string salaryPrompt = "Enter salary: "; int salary; cout << namePrompt; cin >> name; while (name != "q") { try { cout << agePrompt; cin >> age; if (!cin) { cin.clear(); string dummy; cin >> dummy; throw PersonException("invalid age"); } Person *personPtr = new Person(name, age); cout << salaryPrompt; cin >> salary; if (!cin) { cin.clear(); string dummy; cin >> dummy; throw PersonException("invalid salary"); } personPtr->setSalary(salary); people.push_back(personPtr); } catch (exception &e) { cout << "PersonException thrown: " << e.what() << '\n'; } cout << "There are " << Person::GetCount() << " Person(s), " << people.size() << " in vector\n"; cout << namePrompt; cin >> name; } // delete all the person(s) in the vector for (std::vector::iterator iter = people.begin(); iter != people.end(); ++iter) { delete *iter; } cout << "There are " << Person::GetCount() << " Person(s) left dangling\n"; return 0; }