单个文件中的c ++循环引用

时间:2016-08-27 20:06:59

标签: c++

尝试一些东西时,我想用c++ shell online做一个只有1个文件的例子。

我尝试了一个示例,您可以通过this之类的引用传递此内容:

// Example program
#include <iostream>
#include <string>
class B;
class A{
public:
   void passMe(){
       B b;
       b->handle(*this);
       };

       void runMe(){
           std::cout << "Did run. ";
       };
};

class B{
public:
    void handle(A& refer){
        refer.runMe();
        };
};

int main()
{
  A a;
  a.passMe();
}

但我有一个循环参考。 Normaly你会向前声明(在cpp文件中有一个include),但据我所知,在给出的例子中你不需要(你需要使用1个文件)。

还有其他选项可以使示例代码有效吗?

1 个答案:

答案 0 :(得分:4)

如何解决?修复拼写错误并稍后定义passMe

#include <iostream>
#include <string>

class A{
public:
   void passMe();
   void runMe(){
      std::cout << "Did run. ";
       };
};

class B{
public:
    void handle(A& refer){
        refer.runMe();
        };
};

void A::passMe() {
    B b;
    b.handle(*this);
}

int main()
{
  A a;
  a.passMe();
}