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