简体   繁体   English

C ++中的对象依赖。 类组合的语法是什么?

[英]Object dependency in C++. What is the syntax for class composition?

Class are have written my classes in different files. 类已经在不同的文件中编写了我的类。 Such as: 如:

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

main.cpp has the #include for all classes, but I also need to access Object instantiated from ClassA in main inside ClassB and ClassC. main.cpp对所有类都有#include,但我还需要在ClassB和ClassC的main内部访问从ClassA实例化的Object。

main.cpp main.cpp中

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

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

. .

classB.cpp 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++?
   }
 };

I know it is not right. 我知道这不对。 But why not? 但为什么不呢? In Java makes sense. 在Java中是有道理的。

Declare your classes in header files. 在头文件中声明您的类。 Eg "ClassB.h": 例如“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);
 };

Implement your class in a .cpp file. 在.cpp文件中实现您的类。 Eg "ClassB.cpp" 例如“ClassB.cpp”

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

Repeat for your other classes. 重复其他课程。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM