#pragma once ///////////////////////////////////////////////////////////////////// // Class2.h - has a mutual dependency relationship with Class1 // // // // Jim Fawcett, CSE687 - Object Oriented Design, Fall 2018 // ///////////////////////////////////////////////////////////////////// #include // forward reference to Class1 class Class1; class Class2 { public: Class2(); ~Class2(); void registerClass1(std::shared_ptr pClass1); void say(bool otherSay = true); private: // std::shared_ptr doesn't need complete Class1 definition std::shared_ptr pClass1_ = nullptr; };