crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> forward declarations в C++, как их правильно использовать
Andrew Selivanov
  опции профиля:
сообщение 11.7.2008, 17:47
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Все мы иногда используем так называемые forward declarations. Обнаружил интересное правило, которое помогает пользоваться ими более осознанно:
Если в модуле используются только ссылки на класс A, то заголовочный файл этого класса подключать не обязательно, достаточно использовать forward declaration.
  class A;
  
  class B {
    private:
      A* fPtrA;
    public:
      void mymethod(const& A) const;
  };


Если класс B наследует от класса A или явно/неявно использует его, необходимо подключить загаловочный файл A.
  #include <A.h>
  
  class B : public A {
  
  };
  
  class C {
    private:
      A fA;
    public:
      void mymethod(A par);  
  }


http://www-subatech.in2p3.fr/~photons/suba...CPP-INC-1.shtml
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 11.7.2008, 17:55
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Andrew Selivanov @ 11.7.2008, 18:47) *
Все мы иногда используем так называемые forward declarations. Обнаружил интересное правило, которое помогает пользоваться ими более осознанно:
Если в модуле используются только ссылки на класс A, то заголовочный файл этого класса подключать не обязательно, достаточно использовать forward declaration.

Лично я об этом давно знал! ;) :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 11.7.2008, 18:13
Сообщение #3


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


я тоже, но как-то натыкался на такие грабли, да и все равно новичкам пригодится
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 29.3.2024, 17:09