【问题标题】:Object dependency in C++. What is the syntax for class composition?C++ 中的对象依赖。类组合的语法是什么?
【发布时间】:2019-05-24 04:10:13
【问题描述】:

类已将我的类写在不同的文件中。如:

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

main.cpp 包含所有类的#include,但我还需要在 ClassB 和 ClassC 中的 main 中访问从 ClassA 实例化的对象。

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 中是有意义的。

【问题讨论】:

标签: c++ oop syntax composition


【解决方案1】:

在头文件中声明你的类。例如。 “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;
}

重复你的其他课程。

【讨论】:

  • 因此,.h 文件更像 Java 接口。非常感谢你。让我看看现在情况如何。
猜你喜欢
  • 1970-01-01
  • 2019-09-28
  • 2014-10-20
  • 2012-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
相关资源
最近更新 更多