Compare commits

...

3 Commits

Author SHA1 Message Date
cdd8fd1645 fix: use abstract 2023-08-09 16:20:39 +00:00
882131784b fix: WrongCat in ex02 2023-08-09 15:55:13 +00:00
1341068efe fix: wrongcat 2023-08-09 15:27:58 +00:00
13 changed files with 38 additions and 7 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
ex0*/obj/*.o
ex0*/ex0*

View File

@ -10,6 +10,7 @@ Cat::Cat()
Cat& Cat::operator=(const Cat& src) Cat& Cat::operator=(const Cat& src)
{ {
*this->brain = *src.brain;
this->type = src.type; this->type = src.type;
return *this; return *this;
} }
@ -22,6 +23,7 @@ Cat::~Cat()
Cat::Cat(const Cat& src): Animal() Cat::Cat(const Cat& src): Animal()
{ {
this->brain = new Brain();
*this = src; *this = src;
} }

View File

@ -11,6 +11,7 @@ Dog::Dog()
Dog& Dog::operator=(const Dog& src) Dog& Dog::operator=(const Dog& src)
{ {
*this->brain = *src.brain;
this->type = src.type; this->type = src.type;
return *this; return *this;
} }
@ -23,6 +24,7 @@ Dog::~Dog()
Dog::Dog(const Dog& src): Animal() Dog::Dog(const Dog& src): Animal()
{ {
this->brain = new Brain();
*this = src; *this = src;
} }

View File

@ -22,3 +22,8 @@ WrongCat::WrongCat(const WrongCat& src): WrongAnimal()
{ {
*this = src; *this = src;
} }
void WrongCat::makeSound() const
{
std::cout << "Meow Meow !" << std::endl;
}

View File

@ -11,4 +11,6 @@ class WrongCat : public WrongAnimal
WrongCat &operator=(const WrongCat& src); WrongCat &operator=(const WrongCat& src);
WrongCat(); WrongCat();
~WrongCat(); ~WrongCat();
void makeSound() const;
}; };

View File

@ -2,6 +2,7 @@
#include "Cat.hpp" #include "Cat.hpp"
#include "Dog.hpp" #include "Dog.hpp"
#include "WrongAnimal.hpp"
#include "WrongCat.hpp" #include "WrongCat.hpp"
int main() int main()
@ -12,5 +13,12 @@ int main()
delete j; delete j;
const Animal* i = new Cat(); const Animal* i = new Cat();
delete i; delete i;
const WrongAnimal* k = new WrongCat();
k->makeSound();
Dog test;
{
Dog test2 = test;
}
delete k;
return 0; return 0;
} }

View File

@ -23,11 +23,6 @@ AAnimal::~AAnimal()
std::cout << "~AAnimal()" << std::endl; std::cout << "~AAnimal()" << std::endl;
} }
void AAnimal::makeSound() const
{
std::cout << "OuGAABounga" << std::endl;
}
std::string AAnimal::getType() const std::string AAnimal::getType() const
{ {
return this->type; return this->type;

View File

@ -12,7 +12,7 @@ class AAnimal
std::string getType() const; std::string getType() const;
virtual void makeSound() const; virtual void makeSound() const = 0;
protected: protected:
std::string type; std::string type;

View File

@ -10,6 +10,7 @@ Cat::Cat()
Cat& Cat::operator=(const Cat& src) Cat& Cat::operator=(const Cat& src)
{ {
*this->brain = *src.brain;
this->type = src.type; this->type = src.type;
return *this; return *this;
} }
@ -22,6 +23,7 @@ Cat::~Cat()
Cat::Cat(const Cat& src): AAnimal() Cat::Cat(const Cat& src): AAnimal()
{ {
this->brain = new Brain();
*this = src; *this = src;
} }

View File

@ -11,6 +11,7 @@ Dog::Dog()
Dog& Dog::operator=(const Dog& src) Dog& Dog::operator=(const Dog& src)
{ {
*this->brain = *src.brain;
this->type = src.type; this->type = src.type;
return *this; return *this;
} }
@ -23,6 +24,7 @@ Dog::~Dog()
Dog::Dog(const Dog& src): AAnimal() Dog::Dog(const Dog& src): AAnimal()
{ {
this->brain = new Brain();
*this = src; *this = src;
} }

View File

@ -22,3 +22,8 @@ WrongCat::WrongCat(const WrongCat& src): WrongAnimal()
{ {
*this = src; *this = src;
} }
void WrongCat::makeSound() const
{
std::cout << "Meow Meow !" << std::endl;
}

View File

@ -11,4 +11,6 @@ class WrongCat : public WrongAnimal
WrongCat &operator=(const WrongCat& src); WrongCat &operator=(const WrongCat& src);
WrongCat(); WrongCat();
~WrongCat(); ~WrongCat();
void makeSound() const;
}; };

View File

@ -11,6 +11,10 @@ int main()
delete j; delete j;
const AAnimal* i = new Cat(); const AAnimal* i = new Cat();
delete i; delete i;
Dog test;
{
Dog test2 = test;
}
//const AAnimal* meta = new AAnimal(); //const AAnimal* meta = new AAnimal();
return 0; return 0;
} }