52 lines
1.6 KiB
C++
52 lines
1.6 KiB
C++
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* Dog.cpp :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: aortigos <aortigos@student.42malaga.com +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2025/09/06 02:27:27 by aortigos #+# #+# */
|
|
/* Updated: 2025/09/06 02:28:09 by aortigos ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "Dog.hpp"
|
|
|
|
Dog::Dog() : Animal()
|
|
{
|
|
std::cout << "Dog has been created" << std::endl;
|
|
this->type = "Dog";
|
|
this->brain = new Brain();
|
|
}
|
|
|
|
Dog::~Dog()
|
|
{
|
|
std::cout << "Dog has been destroyed" << std::endl;
|
|
delete (this->brain);
|
|
}
|
|
|
|
Dog::Dog(const Dog &other) : Animal(other)
|
|
{
|
|
std::cout << "Dog copied" << std::endl;
|
|
this->brain = NULL;
|
|
*this = other;
|
|
}
|
|
|
|
Dog& Dog::operator=(const Dog &other)
|
|
{
|
|
std::cout << "Dog copy assignment called" << std::endl;
|
|
if (this != &other)
|
|
{
|
|
Animal::operator=(other);
|
|
if (this->brain)
|
|
delete (this->brain);
|
|
this->brain = new Brain(*other.brain);
|
|
}
|
|
return (*this);
|
|
}
|
|
|
|
void Dog::makeSound() const
|
|
{
|
|
std::cout << "Woof!" << std::endl;
|
|
}
|