Объектная зависимость в C ++.Каков синтаксис для состава класса? - PullRequest
0 голосов
/ 24 мая 2019

Класс записал мои классы в разных файлах. Такие как:

-main.cpp
-ClassA.cpp
-ClassB.cpp
-ClassC.cpp

main.cpp имеет #include для всех классов, но мне также нужно получить доступ к объекту, созданному из ClassA в main внутри ClassB и ClassC.

main.cpp

#include "ClassA.cpp"
#include "ClassB.cpp"
#include "ClassC.cpp"

ClassA objA;
ClassB objB(objA);
ClassB objC(objA);

. .

classB.cpp

#include "ClassB.cpp" //How to avoid the double declaration and yet make the class recognizable?

class ClassB{
  public: 
   ClassA objA;
   ClassB(ClassA obj){
    this->objA = obj; // Is it the right way in C++?
   }
 };

Я знаю, что это неправильно. Но почему нет? В Java есть смысл.

1 Ответ

0 голосов
/ 24 мая 2019

Объявите ваши классы в заголовочных файлах. Например. "ClassB.h":

#include "ClassA.h" // if it's referenced by the subsequent class declaration, you likely need that class's header file as well.

class ClassB{
  public: 
   ClassA objA;
   ClassB(ClassA obj);
 };

Реализуйте свой класс в файле .cpp. Например. "ClassB.cpp"

#include "ClassB.h"
ClassB::ClassB(ClassA obj)
{
    objA = obj;
}

Повторите для других ваших классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...