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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
#1

E2089) - C++

28.09.2009, 16:56. Просмотров 1897. Ответов 10
Метки нет (Все метки)

Доброго времени суток!
При компиляции выпала ошибка -
[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)
Посмотрите здесь:

Выдаёт ошибку во второй сточке: [BCC32 Error] File1.cpp(40): E2089 Identifier 'addFirst' cannot have a type qualifier - C++
Подскажите пожалуйста в чем собственно может быть вопрос. Выдаёт ошибку во второй сточке: File1.cpp(40): E2089 Identifier 'addFirst'...

E2089 Identifier '' cannot have a type qualifier - C++ Builder
У меня возникла ешё 1 проблемам , выдаёт вот эту ошибку Unit1.cpp(28): E2089 Identifier 'Button2Click' cannot have a type qualifier

E2089 Identifier 'FormCreate' cannot have a type qualifier - C++ Builder
Подскажите что за ошибка. Скобки вроде все наместе. //--------------------------------------------------------------------------- ...

E2089: Identifier 'schet' cannot have a type qualifier - C++ Builder
Помогите help! Что тут не так //--------------------------------------------------------------------------- #include <vcl.h> ...

Ошибка [C++ Error] Unit1.h(30): E2089 Identifier 'isRight' cannot have a type qualifier - Visual C++
Что она означает?

При использовании xor появляется ошибка компиляции E2089 Invalid typecast - Delphi
Здравствуйте. Возникла необходимость шифровать данные в программе, нашел следующий код Шифрование: function Encrypt(const...


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

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

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

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

namespace Parser{

double use_func(string f_name) ...

}
VorobeY1326
Ученик 11 класса)
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
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
29.09.2009, 10:50     E2089) #7
VorobeY1326, Вы бы саму функцию показали. Мало ли, на что оно там ругается...
VorobeY1326
Ученик 11 класса)
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 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
29.09.2009, 19:15  [ТС]     E2089) #9
Прошу прощения всех, кто сломал что либо над попыткой понять, в чем проблема..
Я оказался сам виноват - в предыдущей функции не закрыт был switch..
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
29.09.2009, 19:50     E2089) #10
VorobeY1326, а че тогда не копировал сюда то что выводит в графе ошибки?
VorobeY1326
Ученик 11 класса)
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)
Ответ Создать тему
Опции темы

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