Форум программистов, компьютерный форум CyberForum.ru

Error: a function-definition is not allowed here before '{' token| - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Leonman
 Аватар для Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
19.04.2014, 19:47     Error: a function-definition is not allowed here before '{' token| #1
Всем привет.
Вот переписал код из учебника под названием "Дирк Хенкеманс и Марк Ли программирование на c++".
Код из игры под название "Приключение в пещере" (стр. 119)
Вот собстенно код:
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
#include <iostream>
#include <string>
 
using namespace std;
 
bool intro(void);
void room(bool enemy, bool treasure, string description);
string name = "";
string enemyName = "";
string treasureName = "";
const string room1 = "You came through the entrance of the cave.";
const string room2 = "You came forward through the cave.";
const string room3 = "You came to the end of the cave.";
 
int main()
{
    if(intro())
        return 0; // Player doesn`t want to go to the cave. Break programm.
 
    treasureName = "Gold sword";
    enemyName = "Goblin";
    room(true, true, room1);
    enemyName = "Volbata";
    room(true, false, room2);
    enemyName = "Boss";
    treasureName = "Diamonds";
    room(true, true, room3);
    return 0;
 
    bool intro()
    {
        cout << "Hi, player. What is your name? \n";
        cin >> name;
        cout << "We need your help to kill all giblins."
              << "Would You help us, " << name << " ?\n"
              << "Press 1 if yes. \n Press 2 if no\n\n";
        int response;
        cin >> response;
        return !(response == 1);
    }
 
    void room(bool enemy, bool treasure, string description)
    {
        while(true)
        {
            cout << description.c_str() << endl << endl;
            int response = 0;
            do
            {
                cout << "What would you like to do?\n\n";
                if(enemy)
                    cout << "Press 1 to type " << enemyName.c_str() << endl;
                  else if(!enemy)
                    cout << "Press 1 to move to the next room.";
                    if(treasure)
                        cout << "Press 2 to keep " << treasureName.c_str() << endl;
                cin >> response;
            }
          while(response < 1 || response > 2);
            switch(response)
            {
                case 1:
                    if(enemy)
                    {
                        enemy = !enemy;
                        cout << "You killed " << enemyName.c_str() << endl;
                    }
                        else if(!enemy)
                            return;
                case 2:
                    treasure = !treasure;
                    cout << "You kept " << treasure.c_str() << endl;
                    break;
            }
        }
    }
}
При компиляции вылетают вот такие ошибки:
|31|error: a function-definition is not allowed here before '{' token|
|43|error: a function-definition is not allowed here before '{' token|
|77|error: expected '}' at end of input|

В учебнике используется компилятор CodeWarrior, я используя mingw 32 gcc.
Собственно пишу, чтобы спросить, как исправить код, чтобы небыло таких ошибок?
Спасибо за внимание!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2014, 19:47     Error: a function-definition is not allowed here before '{' token|
Посмотрите здесь:

C++ error lnk2028 unresolved token extern c
error C2601: 'main' : local function definitions are illegal fatal error C1004: unexpected end of file found C++
C++ unable to match function definition to an existing declaration
Ошибка syntax error before `(' token C++
W8054 Style of function definition is now obsolete C++
C++ Error expected unqualified-id before '{' token c++
Error: expected ')' before ';' token C++
C++ Pure virtual function definition (C++11)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
19.04.2014, 19:54     Error: a function-definition is not allowed here before '{' token| #2
Leonman, У вас реализация всех функций написана в блоке main, а должно после него
Leonman
 Аватар для Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
19.04.2014, 20:02  [ТС]     Error: a function-definition is not allowed here before '{' token| #3
cooller_94, Спасибо вам, работает.
Yandex
Объявления
19.04.2014, 20:02     Error: a function-definition is not allowed here before '{' token|
Ответ Создать тему
Опции темы

Текущее время: 02:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru