Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
4 / 4 / 4
Регистрация: 15.11.2017
Сообщений: 86
1

Компилятор не определяет функцию

15.11.2017, 19:29. Показов 430. Ответов 4
Метки нет (Все метки)

Компилятор не видит другую функцию которая расположена во 2 заголовочном файле. На письме он его определяет как "void main()", но
компилятор говорит "error C3861: menu: идентификатор не найден".

Menu.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
#include "World1.h"
 
using namespace std;
 
 
    void menu()
    {
        string Menu[3] = { "Start Game", "Options", "Exit" };;
        int pointer = 0;
        while (true)
        {
            system("cls");
 
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
            cout << "Main Menu\n\n";
 
            for (int i = 0; i < 3; ++i)
            {
                if (i == pointer)
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
                    cout << Menu[i] << endl;
                }
                else
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
                    cout << Menu[i] << endl;
                }
            }
 
            while (true)
            {
                if (GetAsyncKeyState(VK_UP) != 0)
                {
                    pointer -= 1;
                    if (pointer == -1)
                    {
                        pointer = 2;
                    }
                    break;
                }
                else if (GetAsyncKeyState(VK_DOWN) != 0)
                {
                    pointer += 1;
                    if (pointer == 3)
                    {
                        pointer = 0;
                    }
                    break;
                }
                else if (GetAsyncKeyState(VK_RETURN) != 0)
                {
                    switch (pointer)
                    {
                    case 0:
                    {
                        cout << "Starting new game" << endl;
                        Sleep(500);
                        world1();
 
                    } break;
                    case 1:
                    {
                        cout << "\n\n\nThis is the options...";
                        Sleep(1000);
                    } break;
                    case 2:
                    {
                        EXIT_SUCCESS;
                    } break;
                    }
                    break;
                }
            }
 
            Sleep(150);
        }
 
        EXIT_SUCCESS;
 
    }
/////////////////////////////второй заголовочный файл/////////////////////////////

World1.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
 
void world1() {
    string Menu[3] = { "1", "2", "back" };
    int pointer = 0;
 
    while (true)
    {
        system("cls");
 
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
        cout << "Main Menu\n\n";
 
        for (int i = 0; i < 3; ++i)
        {
            if (i == pointer)
            {
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
                cout << Menu[i] << endl;
            }
            else
            {
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
                cout << Menu[i] << endl;
            }
        }
 
        while (true)
        {
            if (GetAsyncKeyState(VK_UP) != 0)
            {
                pointer -= 1;
                if (pointer == -1)
                {
                    pointer = 2;
                }
                break;
            }
            else if (GetAsyncKeyState(VK_DOWN) != 0)
            {
                pointer += 1;
                if (pointer == 3)
                {
                    pointer = 0;
                }
                break;
            }
            else if (GetAsyncKeyState(VK_RETURN) != 0)
            {
                switch (pointer)
                {
                case 0:
                {
                    cout << "\n\n\nStarting new game...";
                    Sleep(1000);
                } break;
                case 1:
                {
                    cout << "\n\n\nThis is the options...";
                    Sleep(1000);
                } break;
                case 2:
                {
                    menu();
                } break;
                }
                break;
            }
        }
 
        Sleep(150);
    }
 
    return;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2017, 19:29
Ответы с готовыми решениями:

Методы вызываются через указатель на объект класса; Как компилятор определяет, какой из методов надо вызвать?
Ребята, если вникать, то вообще ничё непонятно. Вот смотрите: пусть у нас есть абстрактный класс...

Неявно типизированные массивы, как компилятор определяет их тип
Вопрос касается определения компилятором типа массива. Точнее, того, что об этом пишет Рихтер. Итак...

Не определяет функцию _outp из conio.h
Не определяет функцию _outp, которая есть по идее в conio.h Что я не так делаю?? Мне по срочно...

Разработать функцию, которая определяет:
Разработать функцию, которая определяет: пересекаются, касаются или не касаются две окружности с...

4
6988 / 6027 / 2737
Регистрация: 14.04.2014
Сообщений: 25,792
15.11.2017, 20:24 2
menu.h в world.h подключи.
0
Заклинатель змей
607 / 506 / 212
Регистрация: 30.04.2016
Сообщений: 2,417
15.11.2017, 20:37 3
hono,
C++
1
void main()
Не соберётся с ненулевой вероятностью
0
4 / 4 / 4
Регистрация: 15.11.2017
Сообщений: 86
15.11.2017, 21:56  [ТС] 4
nmcf, если я это сделаю он подчеркнет и напишет "Включаемый файл (Путь до файла) включает самого себя", а в логе напишет "fatal error C1014: слишком много включаемых файлов: глубина = 1024"
0
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
15.11.2017, 22:17 5
Добавить строку void menu(); в верхнюю часть файла World1.h...
(Предварительное объявление.)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2017, 22:17

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Разработать функцию, которая определяет:
Разработать функцию, которая определяет: пересекаются, касаются или не касаются две окружности с...

Неясно почему не определяет функцию
Всем доброго ) Недавно решил перейти уже все таки на ООП. и вот не пойму в чем дело Почему при...

Разработать функцию, которая определяет:
Разработать функцию, которая определяет: пересекаются, касаются или не касаются две окружности с...

Компилятор ругается на функцию strncat
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; long p,x,i,j,k,d,l; char t,s;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.