29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231

Не распознается тип переменной

19.07.2011, 17:59. Показов 24137. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот пример:
Address.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
#include <string>
 
class Address
{
public:
 
    Address::Address():recordId_(0){}
 
    int recordId() const {return recordId_;}
    void recordId(int i) {recordId_=i;}
 
    std::string lastname() const {return lastname_;}
    void lastname(const std::string&);
 
    std::string firstname() const {return firstname_;}
    void firstname(const std::string&);
 
    std::string phone() const {return phone_;}
    void phone(const std::string&);
 
    std::string address() const {return address_;}
    void address(const std::string&);
 
private:
 
    int recordId_;
    std::string lastname_;
    std::string firstname_;
    std::string phone_;
    std::string address_;
};
AddressBook.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
#include <list>
#include "Address.h"
 
class AddressBook
{
public:
    AddressBook();
    ~AddressBook();
 
    class AddressNotFound{};
    class DuplicateId{};
 
    int insertAddress(const Address& addr, int record = 0)
        throw (DuplicateId);
    void eraseAddress(int recordId) 
        throw (AddressNotFound);
    void replaceAddress(const Address& addr, int recordId = 0)
        throw (AddressNotFound);
    const Address& getAddress(int recordId) const
        throw(AddressNotFound);
 
    void print() const;
 
private:
    AddressBook(const AddressBook&);
    AddressBook& operator = (const AddressBook&);
 
    static int nextId_;
 
    typedef std::list<Address>addrlist;
    addrlist addresses_;
 
    addrlist::iterator getById(int recordId)
        throw(AddressNotFound);
    addrlist::const_iterator getById(int recordId) const
        throw (AddressNotFound);
};
Проблема в этом фрагменте typedef std::list<Address>addrlist; Подскажите пожалуйста как решить эту проблему!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2011, 17:59
Ответы с готовыми решениями:

Пользовательский тип переменной с произвольной размерностью
Можно ли создать тип,переменные которого имеют,к примеру, разрядность 99 бит Например,если int - 32 бит,то нужно int99 бит По заданию...

Какой тип переменной лучше выбрать?
Собственно возникла следующая проблема:при записи числа - 4 294 967 295, значение переменной становится -16777215. Пробовал и long и...

как переобразовать тип переменной char в
#include &lt;iostream&gt; #include &quot;main.h&quot; #include &lt;conio.h&gt; int main(){ using namespace std; setlocale(LC_ALL , &quot;RUSSIAn&quot;);//язик...

13
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
19.07.2011, 19:13
Цитата Сообщение от Helldrg Посмотреть сообщение
Address::Address():recordId_(0){}
Тут ошибка, замените на
C++
1
Address() : recordId_(0){}
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
19.07.2011, 19:18  [ТС]
Все равно не работает(
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
19.07.2011, 19:41
Цитата Сообщение от Helldrg Посмотреть сообщение
Все равно не работает(
Что значит не работает ? Конкретней, пожалуйста.
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
19.07.2011, 19:49  [ТС]
typedef std::list<Address>addrlist; <Address> подсвечивается (т.е. ошибка в нем) а ошибка заключается в том что переменная "Address" не является именем типа. Там есть еще такие же ошибки:
C++
1
2
3
4
5
6
7
8
    int insertAddress(const Address& addr, int record = 0)
        throw (DuplicateId);
    void eraseAddress(int recordId) 
        throw (AddressNotFound);
    void replaceAddress(const Address& addr, int recordId = 0)
        throw (AddressNotFound);
    const Address& getAddress(int recordId) const
        throw(AddressNotFound);
Тут везде адрес с ошибкой
0
 Аватар для soft.creator
106 / 106 / 11
Регистрация: 17.10.2010
Сообщений: 283
19.07.2011, 19:54
Попробуйте
C++
1
typedef typename std::list<Address> addrlist;
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
19.07.2011, 20:01  [ТС]
Не работает(
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
19.07.2011, 20:09
Helldrg, При компиляции какие ошибки, напиши их сюда, они вообще есть ?
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
19.07.2011, 20:17
Цитата Сообщение от Helldrg Посмотреть сообщение
Тут везде адрес с ошибкой
Что явно указывает на то, что класс Address не определён. Других ошибок нет?
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
19.07.2011, 20:22  [ТС]
Предупреждение 1 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 15
Предупреждение 2 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 17
Предупреждение 3 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 19
Предупреждение 4 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 21
Предупреждение 5 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 37
Предупреждение 6 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 39
Предупреждение 7 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 17
Предупреждение 8 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 39
Предупреждение 9 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 49
Предупреждение 10 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 58
Ошибка 11 error C2143: синтаксическая ошибка: отсутствие "," перед "&" c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 64
Предупреждение 12 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 65
Ошибка 13 error C2511: void AddressBook::replaceAddress(int) throw(AddressBook::AddressNotFound): перегруженная функция-член не найдена в "AddressBook" c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 66
Ошибка 14 error C2143: синтаксическая ошибка: отсутствие ";" перед "&" c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 76
Ошибка 15 error C2182: Address: недопустимое использование типа "void" c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 76
Предупреждение 16 warning C4290: спецификация исключений C++ игнорируется, кроме случая, когда указывается, что функция не является __declspec(nothrow) c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 77
Ошибка 17 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 78
Ошибка 18 error C2556: int &AddressBook::getAddress(int) throw(AddressBook::AddressNotFound) const: перегруженная функция отличается от "const Address &AddressBook::getAddress(int) throw(AddressBook::AddressNotFound) const" только возвращаемым типом c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 78
Ошибка 19 error C2373: AddressBook::getAddress: переопределение; различные модификаторы типа c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 78
Ошибка 20 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 86
Ошибка 21 error C2143: синтаксическая ошибка: отсутствие ";" перед "&" c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 86
Ошибка 22 error C2065: a: необъявленный идентификатор c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 86
Ошибка 23 error C2065: a: необъявленный идентификатор c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 87
Ошибка 24 error C2228: выражение слева от ".recordId" должно представлять класс, структуру или объединение c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 87
Ошибка 25 error C2065: a: необъявленный идентификатор c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 88
Ошибка 26 error C2228: выражение слева от ".firstname" должно представлять класс, структуру или объединение c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 88
Ошибка 27 error C2065: a: необъявленный идентификатор c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 88
Ошибка 28 error C2228: выражение слева от ".lastname" должно представлять класс, структуру или объединение c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 88
Ошибка 29 error C2065: a: необъявленный идентификатор c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 89
Ошибка 30 error C2228: выражение слева от ".address" должно представлять класс, структуру или объединение c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 89
Ошибка 31 error C2065: a: необъявленный идентификатор c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 89
Ошибка 32 error C2228: выражение слева от ".phone" должно представлять класс, структуру или объединение c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 89
33 IntelliSense: объявление несовместимо с "void AddressBook::replaceAddress(const Address &addr, int recordId = 0)" (объявлено в строке 18 из "c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\AddressBoo k.h") c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 64
34 IntelliSense: требуется круглая скобка ")" c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 64
35 IntelliSense: недопустимый неполный тип c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 76
36 IntelliSense: требуется точка с запятой ";" c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.cpp 76
37 IntelliSense: переменная "Address" не является именем типа c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 14
38 IntelliSense: переменная "Address" не является именем типа c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 18
39 IntelliSense: переменная "Address" не является именем типа c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 20
40 IntelliSense: переменная "Address" не является именем типа c:\users\э\documents\visual studio 2010\projects\tinypim\tinypim\addressboo k.h 33

Добавлено через 44 секунды
Может вам проект скинуть?
0
 Аватар для soft.creator
106 / 106 / 11
Регистрация: 17.10.2010
Сообщений: 283
19.07.2011, 22:09
На сообщения IntelliSense не обращайте внимания, ибо эту технологию гораздо правдивее было бы назвать DebiliSense
Ошибки у Вас в cpp файле, а Вы приложили только h-файлы.
Проект желательно бы глянуть
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
19.07.2011, 22:41  [ТС]
Вот проект:
Вложения
Тип файла: rar TinyPIM.rar (6.31 Мб, 113 просмотров)
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
20.07.2011, 09:12
Цитата Сообщение от Helldrg Посмотреть сообщение
Может вам проект скинуть?
Да...............йаааа тормоззз...

Добавлено через 4 минуты
#pragma once не хватает очень.

Добавлено через 1 минуту
Спецификация исключений бесполезна. Удаляй.

Добавлено через 3 минуты
И, что-то подсказывает, что вместо писка стоит использовать std::map<id, address>.
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
20.07.2011, 11:08  [ТС]
Вот проект:
https://www.cyberforum.ru/atta... 1311100898
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2011, 11:08
Помогаю со студенческими работами здесь

как определить тип переменной в функции f(void x)
Добрый день, есть функция которая принимает значение типа void, а уже в зависимости от типа делает операции int f(void x) { ...

Получить тип переменной и задать её переменной типа тип
то есть int A = 213213 Type B = A.GetType() - ну надо что-то вроде этого но для Type b = typeof(a.Max(p =&gt;...

Добавить свой тип (Enum) в тип переменной My.Settings
Доброй ночи! В принципе название темы говорит само за себя. Нужен параметр приложения с моим типом данных. В данном случае это enum. Но...

Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR?
Вроде давно занимаюсь программированием на С++, но встала проблема... Есть некий массив переменных имеющих 8 битный размер... без знака...

Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип, а не ссылка на обьект!
interface HowDefineMyType { void info(); } class A implements HowDefineMyType { public int x;


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

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

Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru