Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Добавление своего типа в класс


Автор: Kostt 16.2.2006, 08:56
Здравствуйте!
Я хочу добавить массив своих простеньких структурок в свой класс.

Завел файл ParamInfo.h

typedef struct ParamInfo
{
LONG m_ID;
INT m_DataType;
CString m_Name;
CString m_Description;
}

Подключаю к заголовочнику своего класса, ругается! unexpected 'class'('MyClass') Что не так?

Автор: azesmcar 16.2.2006, 09:28
Код

#ifndef __PARAMINFO_H__
#define __PARAMINFO_H__

typedef struct
{
   LONG m_ID;
   INT m_DataType;
   CString m_Name;
   CString m_Description;
} ParamInfo;

#endif


Код

#ifndef __MYCLASS_H__
#define __MYCLASS_H__

class MyClass
{
public:
   MyClass();
   ~MyClass();
private:
   ParamInfo m_ParamInfoArray[10];
};
#endif

Автор: Neitron 16.2.2006, 10:11
Интресно кто же учит так тупо объявлять структуры через typedef.
Меня почему то , когда так пишут очень сильно напрягает.

Автор: azesmcar 16.2.2006, 10:39
Цитата

Интресно кто же учит так тупо объявлять структуры через typedef.
Меня почему то , когда так пишут очень сильно напрягает.


К примеру я знаю фирму у которой такой вид обьявления структуры введен в Coding-Standard...притом фирма серьезная..

У каждого свой стиль...тебя это с чего напрягает?

Автор: Kostt 16.2.2006, 12:18
Спасибо за советы!

Автор: DeadSoul 16.2.2006, 22:43
Цитата(Neitron @ 16.2.2006, 10:11 Найти цитируемый пост)
Интресно кто же учит так тупо объявлять структуры через typedef.


Код

struct
{
   LONG m_ID;
   INT m_DataType;
   CString m_Name;
   CString m_Description;
} ParamInfo;

void Foo( ParamInfo* );// Раньше приводило к ошибке компиляции, нужно было писать
void Foo( struct ParamInfo* );

Понятно, что каждый раз писать struct не хочется. Поэтому писали typedef

P.S. Это достаточно старые воспоминания, следовательно доверять им со 100% уверенностью не стоит

Автор: Neitron 17.2.2006, 12:06
У тебя в этом коде ошибка в любой случае....

ParamInfo; в данном случае имя экземпляра а не имя структуры.

Автор: DeadSoul 17.2.2006, 22:59
Цитата(Neitron @ 17.2.2006, 12:06 Найти цитируемый пост)
У тебя в этом коде ошибка в любой случае....

Зануда. smile

Имелось ввиду
Код

struct ParamInfo
{
   LONG m_ID;
   INT m_DataType;
   CString m_Name;
   CString m_Description;
};


vs

Код

typdef struct ParamInfo_
{
   LONG m_ID;
   INT m_DataType;
   CString m_Name;
   CString m_Description;
}ParamInfo;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)