Я пытаюсь создать простое текстовое приключение, и я разбиваю код на несколько заголовков, чтобы ускорить время компиляции и сделать его более организованным.В C++, как я могу ссылаться на функции в разных заголовочных файлах?
//main.cpp
#include <iostream>
#include <fstream>
#include "main_menu.h"
#include "file_select.h"
using namespace std;
int main()
{
main_menu();
}
Главный файл заголовка меню выглядит следующим образом:
\\main_menu.h
#ifndef main_menu_H
#define main_menu_H
#include <iostream>
#include "file_select.h"
using namespace std;
void main_menu() {
cout << string(50,'\n');
cout << " ADVENTURE OF THE SKYLANDS \n";
cout << "================================================================================\n";
cout << " CHAPTER 1 \n";
cout << "================================================================================\n";
cout << " Scepter of The Winds \n";
cout << " v1.0.0 \n";
cout << "================================================================================\n";
char select;
cout << "\n\n\n\n\n" << "MAIN MENU\n\n";
cout << "1. Start\n";
cout << "2. File Select\n";
cout << "3. Credits\n";
cout << "4. Exit Game\n";
cin >> select;
if (select == 'S' || select == 's' || select == '1') {
}
else if (select == 'F' || select == 'f' || select == '2') {
file_select();
}
else if (select == 'C' || select == 'c' || select == '3') {
}
else if (select == 'E' || select == 'e' || select == 'x' || select == 'X' || select == '4') {
return;
}
else {
cout << "Invalid Option!";
}
}
#endif
#include
Наконец, выберите файл заголовка меню Файл и это, где у меня ошибка: «main_menu» не был объявлен в этой объем.
#ifndef file_select_H
#define file_select_H
#include <iostream>
#include "main_menu.h"
using namespace std;
void file_select() {
cout << " FILE SELECT \n";
cout << "==================================================================================\n";
cout << "1. File 1\n";
cout << "2. File 2\n";
cout << "3. File 3\n";
cout << "4. Return to Main Menu\n";
char fileselect;
cin >> fileselect;
if (fileselect == '1') {
}
else if (fileselect == '2') {
}
else if (fileselect == '3') {
}
else if (fileselect == '4') {
main_menu();
}
else {
cout << "Invalid Option.";
}
}
#endif
Не помещайте функции * определения * в заголовочных файлах (если вы не объявлять их как '' static' или inline'). Вместо этого определите определения в отдельных исходных файлах и поместите только * объявления * в файлы заголовков. –
И в чем ваш вопрос? Какая еще проблема у вас с кодом? –
Как я могу исправить свой код, чтобы он работал? Например, как я могу ссылаться на функцию, например, на Header1.h, и хочу ссылаться на нее в Header2.h –