3 .h и 3 .cpp файлы - PullRequest
       1

3 .h и 3 .cpp файлы

0 голосов
/ 04 марта 2011

Я создаю приложение, которое должно использовать один класс из 1.h в 2.h, который определен как:

<classname> *p;

теперь я могу использовать p в 2.cpp. Но я также хотел бы использовать его в 3.cpp. Я не мог включить 2.h в 3.cpp. Есть ли способ сделать его видимым в 3.cpp?

Спасибо за помощь.

Ответы [ 3 ]

0 голосов
/ 04 марта 2011

Вы должны предоставить больше информации, но я думаю, что получил Вы пытаетесь использовать класс в заголовке, который был определен I. Другой заголовок, но по какой-то причине вы не можете включить заголовок, он был определен в заголовке, над которым вы работаете. Решение состоит в том, чтобы создать «временное» определение вместо включения.

Например: Вам нужен myClassA в 1.h, но он был определен в 2.h, и какая-то ошибка не позволяет вам включить 2.h в 1.h для ее решения. Запись:

класс myClassA;

поверх 1.h, чтобы вы могли ссылаться на него, но без реализации (потому что он реализован в 2.cpp)

0 голосов
/ 04 марта 2011

Простое правило - один класс, один заголовочный файл.

Дано:

A.h:
class A
{
};

B.h:
#include "A.h"
class B
{
  A obj;
};

C.h:
#include "A.h"
class C
{
  A obj;
};

Я надеюсь, что это отвечает на вопрос. В противном случае отредактируйте свой вопрос с более подробной информацией и примером того, что вы пытаетесь выполнить.

0 голосов
/ 04 марта 2011

Был бы полезен более наглядный пример вашей проблемы с некоторым кодом.

В целом попытайтесь сделать следующее:

  • Каждый заголовок должен содержать только свой собственный класс сто же имя.
  • Если класс использует другой класс, и вы можете заранее объявить его в этом заголовке, выполните.

Вы не можете заранее объявить, если у класса есть экземплярдругой класс или, если он является производным от него.

  • Файлы единиц компиляции (cpp) должны включать все необходимые им заголовки.В идеале сначала включите собственный заголовок.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...