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

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

Войти
Регистрация
Восстановить пароль
 
stan98
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 24
#1

не видит typedef - C++

17.01.2013, 21:05. Просмотров 337. Ответов 5
Метки нет (Все метки)

вот примерно что в первом - a.h файле
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class a
{
   enum eSomeEnum
   {
      a = 0,
      b,
      //... и так далее
    }
 
    struct sSomeStruct
    {
         int a;
         //... и так далее
    }
 
    typedef std::map<eSomeEnum, eSomeStruct>  tMyMap;
}
C++
1
2
3
4
5
вот что во втором - b.h файле
class b
{
    tMyMap   m_my_map;
}
#include "a.h" - подключается в сpp файле класса b

суть проблемы - class b не понимает что такое tMyMap, однако если перейти go to definition - то переходит правильно

где ошибка и как починить?

заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 21:05     не видит typedef
Посмотрите здесь:

C++ Странности с typedef
typedef C++
typedef C++
typedef и vector C++
typedef в c++ C++
C++ Про typedef
C++ Наследование typedef'a
Typedef C++
typedef C++
C++ Typedef и функция
Typedef C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
17.01.2013, 21:14     не видит typedef #2
Напишите typedef над классом а
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.01.2013, 21:20     не видит typedef #3
C++
1
a::tMyMap m_my_map;
stan98
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 24
17.01.2013, 21:57  [ТС]     не видит typedef #4
Цитата Сообщение от I.M. Посмотреть сообщение
C++
1
a::tMyMap m_my_map;
так не работает


собираю проект, пробую вынести выше класса структуры и typedef

Добавлено через 4 минуты
вообще какая-то ересь!

вынес определение типа из класса - теперь даже при нависании мышки тип правильно показывает

а все равно error C2146: syntax error : missing ';' before identifier

может я не там ошибку ищу?

Добавлено через 23 минуты
ИТОГ - бубен зазвенел только когда вынес определение и структуры с перечислениями выше класса и в b.h подключил a.h! неведомая магия эта сборка...

всем спасибо

Добавлено через 4 минуты
я еще чуть чуть подумал и появился вопрос -

Может ли быть что из-за использования include guard файл a не подключается к файлу b??
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
17.01.2013, 21:59     не видит typedef #5
Зачем изначально их было в пространство класса засовывать, если они нужны где-то ещё, помимо работы внутри класса?
stan98
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 24
17.01.2013, 22:01  [ТС]     не видит typedef #6
и может ли как-то влиять порядок подключения инклудов?

Добавлено через 2 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Зачем изначально их было в пространство класса засовывать, если они нужны где-то ещё, помимо работы внутри класса?
они нужны еще в самом классе,

я схематично изобразил - на самом деле структура больше и много где пришлось править

а вообще этот код не я писал))
Yandex
Объявления
17.01.2013, 22:01     не видит typedef
Ответ Создать тему
Опции темы

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