///////////////////////////////////////////////////////////////////// // Exec.cpp - Demonstrates successful execution with mutual // // type dependencies // // // // Jim Fawcett, CSE687 - Object Oriented Design, Fall 2018 // ///////////////////////////////////////////////////////////////////// #include "Class1.h" #include "Class2.h" #include int main() { struct Cosmetic { ~Cosmetic() { std::cout << "\n\n"; }; } cos; std::cout << "\n Demonstrating operation with mutual type dependencies"; std::cout << "\n ======================================================="; Class1 c1; Class2 c2; std::cout << "\n"; std::shared_ptr pClass2 = std::make_shared(); c1.registerClass2(pClass2); // c1 now depends on instance of Class2 in native heap auto pClass1 = std::make_shared(); c2.registerClass1(pClass1); // c2 now depends on instance of Class2 in native heap std::cout << "\n"; c1.say(); std::cout << "\n"; c2.say(); std::cout << "\n"; }