/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* main.cpp :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: aortigos getType() << "): "; animals[i]->makeSound(); } std::cout << "\n=== Deleting Array ===" << std::endl; for (int i = 0; i < arraySize; i++) delete animals[i]; std::cout << "\n=== Deep Copy Test ===" << std::endl; Dog originalDog; originalDog.getBrain()->setIdea(0, "I love bones!"); Dog copiedDog = originalDog; copiedDog.getBrain()->setIdea(0, "I love balls!"); std::cout << "Original dog idea: " << originalDog.getBrain()->getIdea(0) << std::endl; std::cout << "Copied dog idea: " << copiedDog.getBrain()->getIdea(0) << std::endl; std::cout << "\n=== Testing Brain Independence ===" << std::endl; Cat* cat1 = new Cat(); cat1->getBrain()->setIdea(0, "Chase mice"); Cat* cat2 = new Cat(*cat1); // Copy constructor cat2->getBrain()->setIdea(0, "Sleep all day"); std::cout << "Cat1 idea: " << cat1->getBrain()->getIdea(0) << std::endl; std::cout << "Cat2 idea: " << cat2->getBrain()->getIdea(0) << std::endl; delete cat1; delete cat2; return 0; }