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

E2089) - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
VorobeY1326
Ученик 11 класса)
 Аватар для VorobeY1326
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
28.09.2009, 16:56     E2089) #1
Доброго времени суток!
При компиляции выпала ошибка -
[C++ Error] Calc.cpp(237): E2089 Identifier 'use_func' cannot have a type qualifier
Возникла она при попытке переделать обычный код в код, использующий namespace для разделения данных по модулям...
C++
1
2
3
4
5
6
7
8
9
10
11
12
namespace Parser{
 
double use_func(string f_name);
 
}
 
     //...
 
double Parser::use_func(string f_name)  
{                                                         //Ругается вот сюда(
    //...                                       
}
Подскажите, в чем проблема!
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2009, 16:56     E2089)
Посмотрите здесь:

Ошибка [C++ Error] Unit1.h(30): E2089 Identifier 'isRight' cannot have a type qualifier Visual C++
C++ Выдаёт ошибку во второй сточке: [BCC32 Error] File1.cpp(40): E2089 Identifier 'addFirst' cannot have a type qualifier
C++ Builder E2089 Identifier 'FormCreate' cannot have a type qualifier
C++ Builder E2089: Identifier 'schet' cannot have a type qualifier
C++ Builder E2089 Identifier '' cannot have a type qualifier
При использовании xor появляется ошибка компиляции E2089 Invalid typecast Delphi

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexiski
Любитель давать советы
 Аватар для Alexiski
338 / 130 / 2
Регистрация: 12.01.2009
Сообщений: 511
28.09.2009, 17:17     E2089) #2
Точку с запятой после закрывающей фигурной скобки в namespace поставьте.
VorobeY1326
Ученик 11 класса)
 Аватар для VorobeY1326
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
28.09.2009, 17:25  [ТС]     E2089) #3
2 Alexiski:
Страуструп:
Члены пространства имен объявляются следующим образом:
namespace имя_пространства_имен{
//объявления и определения
}
Вроде нет никакой точки с запятой..
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,153
Завершенные тесты: 1
28.09.2009, 17:39     E2089) #4
VorobeY1326, а ты попробуй поставить,много в книгах опечатки,у меня КиР,каждый день новые опечатки в коде и словах нахожу,не хорошо перевели.
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
28.09.2009, 17:49     E2089) #5
... Точку с запятой после закрывающей фигурной скобки в namespace поставьте. ...
... VorobeY1326, а ты попробуй поставить,много в книгах опечатки ...

А теперь - правильный ответ (:

тело модуля тоже должно содержаться в указанном пространстве имён:

namespace Parser{

double use_func(string f_name) ...

}
VorobeY1326
Ученик 11 класса)
 Аватар для VorobeY1326
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
28.09.2009, 18:42  [ТС]     E2089) #6
2 Rififi:
То есть надо определять функцию в пространстве имен?
Но у меня подобным образом объявлено 3-4 функции и все норм!
C++
1
2
3
4
5
6
7
8
9
10
namespace Parser{
double set_func();                   
}
 
//...
 
double Parser::set_func() 
{
//...
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9383 / 5433 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
29.09.2009, 10:50     E2089) #7
VorobeY1326, Вы бы саму функцию показали. Мало ли, на что оно там ругается...
VorobeY1326
Ученик 11 класса)
 Аватар для VorobeY1326
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
29.09.2009, 16:52  [ТС]     E2089) #8
Функция то вот как выглядит:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double Parser::use_func(string f_name)                             
{
        int number_of_vars=functions[f_name].vars.size();  
        map<string,double>f_table;                      
        for (int i=0; i < number_of_vars; i++)             
        {
                double left = expr(true);                                               
                f_table[functions[f_name].vars[i]]=table[functions[f_name].vars[i]];    
                table[functions[f_name].vars[i]]=left;                                  
        }
        istringstream f_code(functions[f_name].code);        
        istream *buf_input=Stream::input;
        Stream::input=&f_code;                               
        double left=expr(true);                              
        Stream::input=buf_input;                                     
        for (int i=0; i<number_of_vars; i++)
        table[functions[f_name].vars[i]] = f_table[functions[f_name].vars[i]];
        Lexer::get_token();
        return left;                                        
}
Но в ней должно быть все норм, потому что до попытки перенести все это в пространство имен она работала отлично, а её содержимое я не менял..вылетает компиляция именно на подходе к функции на скобке { , до дальнейших ошибок компилятор не доходит.
Скажите кто нибудь, плиз, что это вообще за ошибка такая - E2089?
(компилятор - C++ Builder 6)
VorobeY1326
Ученик 11 класса)
 Аватар для VorobeY1326
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
29.09.2009, 19:15  [ТС]     E2089) #9
Прошу прощения всех, кто сломал что либо над попыткой понять, в чем проблема..
Я оказался сам виноват - в предыдущей функции не закрыт был switch..
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,153
Завершенные тесты: 1
29.09.2009, 19:50     E2089) #10
VorobeY1326, а че тогда не копировал сюда то что выводит в графе ошибки?
VorobeY1326
Ученик 11 класса)
 Аватар для VorobeY1326
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
29.09.2009, 19:55  [ТС]     E2089) #11
VorobeY1326
При компиляции выпала ошибка -
[C++ Error] Calc.cpp(237): E2089 Identifier 'use_func' cannot have a type qualifier
Yandex
Объявления
29.09.2009, 19:55     E2089)
Ответ Создать тему
Опции темы

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