Lofectr Asked:2022-01-31 16:04:58 +0000 UTC2022-01-31 16:04:58 +0000 UTC 2022-01-31 16:04:58 +0000 UTC C++在B类中调用A类的方法,反之亦然 772 class A { public: void foo(){B b; b.foo();} } class B { public: void foo(){A a; a.foo();} } 是否可以在 C++ 中做类似的事情? c++ 1 个回答 Voted Best Answer Harry 2022-01-31T16:13:02Z2022-01-31T16:13:02Z 在什么意义上是可能的? 编译?容易地: class A { public: void foo(); }; class B { public: void foo(); }; void A::foo(){B b; b.foo();} void B::foo(){A a; a.foo();} 去工作?不太可能 - 结果是无限递归...... 因为有一个关于分离成头文件的问题...... a_d.hpp #pragma once class A { public: void foo(); }; b_d.hpp #pragma once class B { public: void foo(); }; a_i.hpp #pragma once #include "a_d.hpp" #include "b_d.hpp" void A::foo(){B b; b.foo();} b_i.hpp #pragma once #include "a_d.hpp" #include "b_d.hpp" void B::foo(){A a; a.foo();} 主文件 #include "a_i.hpp" #include "b_i.hpp" int main() { A a; a.foo(); B b; b.foo(); }
在什么意义上是可能的?
编译?容易地:
去工作?不太可能 - 结果是无限递归......
因为有一个关于分离成头文件的问题......
a_d.hpp
b_d.hpp
a_i.hpp
b_i.hpp
主文件