Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
stan98
0 / 0 / 1
Регистрация: 05.11.2012
Сообщений: 24
#1

не видит typedef

17.01.2013, 21:05. Просмотров 412. Ответов 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 - то переходит правильно

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

заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 21:05
Ответы с готовыми решениями:

Typedef void F(); typedef для типа функции через идентификатор
Здравствуйте цитата из typedef MSDN в интернете мне удалось нарыть только...

Typedef
Что означают это typedef ? typedef int (*isdigit_callback_t)(char c);...

typedef
Доброго времени суток, уважаемые программисты! Не могу понять несколько строк...

typedef в c++
Здравствуйте! Нужно собрать полную информацию по оператору typedef в c++....

typedef
double f(double x){ } typedef double (*TPF)(double); TPF fff = f;...

5
coloc
погромист
411 / 247 / 30
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
17.01.2013, 21:14 #2
Напишите typedef над классом а
1
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
17.01.2013, 21:20 #3
C++
1
a::tMyMap m_my_map;
1
stan98
0 / 0 / 1
Регистрация: 05.11.2012
Сообщений: 24
17.01.2013, 21:57  [ТС] #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??
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
17.01.2013, 21:59 #5
Зачем изначально их было в пространство класса засовывать, если они нужны где-то ещё, помимо работы внутри класса?
0
stan98
0 / 0 / 1
Регистрация: 05.11.2012
Сообщений: 24
17.01.2013, 22:01  [ТС] #6
и может ли как-то влиять порядок подключения инклудов?

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

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

а вообще этот код не я писал))
0
17.01.2013, 22:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2013, 22:01

Typedef
Наткнулся на пример ниже: typedef char *cstring; //Каков тип переменной...

Typedef
Доброго времени суток. Привожу вам отрывок из книги &quot;C и Visual C++ 2008 для...

typedef
template &lt;typename Type&gt; typedef function&lt;double(Type)&gt; fun не получается...


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

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

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