You are declaring and defining the following at namespace scope in Start.cpp
when you probably don't mean to:
void bookNew();
void viewReceipts();
void showMenu();
Your constructor is calling Start::showMenu(), which you actually did declare properly:
Start::Start(void) {
showMenu(); // this calls Start::showMenu(), which is not what you defined.
}
You need to get rid of the three declarations above and redefine the implementations as follows:
void Start::showMenu() {
//output to the user
cout << "Welcome to the Flight Booking System\n"
"Please choose an action from the list below "
"by typing the corresponding number.\n";
// ...
}
void Start::bookNew() { /* ... */ }
void Start::viewReceipts() { /* ... */ }
You may also have similar problems with Routes
, which is using namespace-scope methods and global variables instead of class member equivalents.