有 2 个类,如何在上面的类中使用下面类的对象

There are 2 classes , how do I use object of below class in above class?

本文关键字:对象 在上面 个类      更新时间:2023-10-16

例如,我有 2 个按以下顺序定义的类......

class A
{
     int value;
     printValue(B b)
     {
        cout << b.value
     }
};
class B  
{
   int value;
   printValue(A a)
   {
      cout << a.value;
   }
}

如何在 A 中使用 B 对象,因为 B 定义如下?

可以将类的声明和实现分开,在声明头文件中前向声明它们,并在函数中使用引用。

文件 A.h

class B; // forward declaration
class A {
  public:
     int value;
     void printValue(const B& b) const; // pass by reference
};

文件 B.h

class A; // forward declaration
class B  {
  public:
   int value;
   void printValue(const A& a) const; // pass by reference
};

然后,具有单独的实现文件。例如,A 的实现文件A.cpp

#include "A.h"
#include "B.h"
void A::printValue(const B& b) const {
   std::cout << b.value;
}

同样对于B.cpp.

请注意,我已经修复了printValue函数缺少的返回类型,并使这些函数const