C++ - 2个类1个文件

Yuv*_*dam 5 c++

假设我想要一个这样的东西,在一个.cpp源文件中:

class A {
    public:
        void doSomething(B *b) {};
};

class B {
    public:
        void doSomething(A *a) {};
};
Run Code Online (Sandbox Code Playgroud)

无论如何这样做没有将它分成两个单独的文件,并且没有收到编译器错误(语法错误doSomething(B *b))

Fre*_*els 12

如果我记得很清楚,你可以'预先宣布'你的班级B.

class B; // predeclaration of class B

class A
{
   public:
      void doSomething(B* b);
}

class B
{
    public
      void doSomething(A* a) {}
}

public void A::doSomething(B* b) {}
Run Code Online (Sandbox Code Playgroud)

然后,你的班级'A'知道班级'B'会存在,虽然还没有真正定义.

正如Evan Teran在评论中提到的那样,前向声明确实是正确的术语.