реклама на сайте
подробности

 
 
> Как в Cross Studio 1.5 объявить класс по хитрому
Pat
сообщение Sep 7 2006, 12:40
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Есть вот такой набор наследуемых классов

Код
// Базовый Класс DrvObject
class DrvObject
{
public:
  unsigned char idnDrv;
};

// Класс DrvGrOblect
class DrvGroup;
class DrvGrObject : public DrvObject
{
public:
  DrvGrObject *next;
  DrvGroup    *owner;

  virtual void getEvent(TEvent& event);
};

// Класс DrvGrOblect
class DrvGroup : public DrvGrObject
{
public:
  DrvGrObject *last;
  DrvGrObject *current;
  DrvGroup();

  virtual void getEvent(TEvent& event);
  void insert(DrvGrObject* o);
  unsigned int execute(void);
};

Собственно вся загвоздка вот тут:

Код
// Класс DrvGrOblect
class DrvGrObject : public DrvObject
{
public:
  DrvGrObject *next;
  DrvGroup    *owner;

  virtual void getEvent(TEvent& event);
};

Вот этой конструкции DrvGroup *owner; компилятор не видит
IAR начинал работать нормально если вначале заголовочного файла приписать
class DrvGroup;

Cross Stulio этого не понимает.
Может есть какое волшебное слово применительно к GCC.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex03
сообщение Sep 7 2006, 18:12
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



В CW 1.5 build 2 Ваш код компилится даже без варнингов.
Правда с такими изменениями:
virtual void getEvent(/*TEvent& event*/);

Так что видимо надо искать пораньше, какойнить ";" в хидере не хватает и т.д.
Go to the top of the page
 
+Quote Post
Pat
сообщение Sep 7 2006, 18:33
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Цитата(Alex03 @ Sep 7 2006, 20:12) *
В CW 1.5 build 2 Ваш код компилится даже без варнингов.
Правда с такими изменениями:
virtual void getEvent(/*TEvent& event*/);

Так что видимо надо искать пораньше, какойнить ";" в хидере не хватает и т.д.

TEvent& event
Эту структуру я просто не вставил из за экономии места, (забыл закоментировать).
А так не хочет компилится пишет если:
вставлено class DrvObject;
parse error before "DrvGroup"
если его нет тогда
ISO C++ forbids declaration of `DrvGroup' with no type
В ИАРе еще раз повторюсь все компилится без проблем.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016