add ex00
This commit is contained in:
34
ex00/src/Animal.cpp
Normal file
34
ex00/src/Animal.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
#include "Animal.hpp"
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
Animal::Animal()
|
||||
{
|
||||
std::cout << "Animal()" << std::endl;
|
||||
}
|
||||
|
||||
Animal::Animal(const Animal& src)
|
||||
{
|
||||
*this = src;
|
||||
}
|
||||
|
||||
Animal& Animal::operator=(const Animal &src)
|
||||
{
|
||||
this->type = src.type;
|
||||
return *this;
|
||||
}
|
||||
|
||||
Animal::~Animal()
|
||||
{
|
||||
std::cout << "~Animal()" << std::endl;
|
||||
}
|
||||
|
||||
void Animal::makeSound() const
|
||||
{
|
||||
std::cout << "OuGABounga" << std::endl;
|
||||
}
|
||||
|
||||
std::string Animal::getType() const
|
||||
{
|
||||
return this->type;
|
||||
}
|
19
ex00/src/Animal.hpp
Normal file
19
ex00/src/Animal.hpp
Normal file
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
class Animal
|
||||
{
|
||||
public:
|
||||
Animal();
|
||||
Animal(const Animal& src);
|
||||
Animal &operator=(const Animal& src);
|
||||
virtual ~Animal();
|
||||
|
||||
std::string getType() const;
|
||||
|
||||
virtual void makeSound() const;
|
||||
|
||||
protected:
|
||||
std::string type;
|
||||
};
|
30
ex00/src/Cat.cpp
Normal file
30
ex00/src/Cat.cpp
Normal file
@ -0,0 +1,30 @@
|
||||
#include "Cat.hpp"
|
||||
#include "Animal.hpp"
|
||||
#include <iostream>
|
||||
|
||||
Cat::Cat()
|
||||
{
|
||||
this->type = "Cat";
|
||||
std::cout << "Cat()" << std::endl;
|
||||
}
|
||||
|
||||
Cat& Cat::operator=(const Cat& src)
|
||||
{
|
||||
this->type = src.type;
|
||||
return *this;
|
||||
}
|
||||
|
||||
Cat::~Cat()
|
||||
{
|
||||
std::cout << "~Cat()" << std::endl;
|
||||
}
|
||||
|
||||
Cat::Cat(const Cat& src): Animal()
|
||||
{
|
||||
*this = src;
|
||||
}
|
||||
|
||||
void Cat::makeSound() const
|
||||
{
|
||||
std::cout << "Meow Meow !" << std::endl;
|
||||
}
|
16
ex00/src/Cat.hpp
Normal file
16
ex00/src/Cat.hpp
Normal file
@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "./Animal.hpp"
|
||||
|
||||
class Cat : public Animal
|
||||
{
|
||||
public:
|
||||
Cat(const Cat& src);
|
||||
Cat &operator=(const Cat& src);
|
||||
Cat();
|
||||
~Cat();
|
||||
|
||||
void makeSound() const;
|
||||
};
|
30
ex00/src/Dog.cpp
Normal file
30
ex00/src/Dog.cpp
Normal file
@ -0,0 +1,30 @@
|
||||
#include "Dog.hpp"
|
||||
#include "Animal.hpp"
|
||||
#include <iostream>
|
||||
|
||||
Dog::Dog()
|
||||
{
|
||||
this->type = "Dog";
|
||||
std::cout << "Dog()" << std::endl;
|
||||
}
|
||||
|
||||
Dog& Dog::operator=(const Dog& src)
|
||||
{
|
||||
this->type = src.type;
|
||||
return *this;
|
||||
}
|
||||
|
||||
Dog::~Dog()
|
||||
{
|
||||
std::cout << "~Dog()" << std::endl;
|
||||
}
|
||||
|
||||
Dog::Dog(const Dog& src): Animal()
|
||||
{
|
||||
*this = src;
|
||||
}
|
||||
|
||||
void Dog::makeSound() const
|
||||
{
|
||||
std::cout << "Ouaf ouaf !" << std::endl;
|
||||
}
|
16
ex00/src/Dog.hpp
Normal file
16
ex00/src/Dog.hpp
Normal file
@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "./Animal.hpp"
|
||||
|
||||
class Dog : public Animal
|
||||
{
|
||||
public:
|
||||
Dog(const Dog& src);
|
||||
Dog &operator=(const Dog& src);
|
||||
Dog();
|
||||
~Dog();
|
||||
|
||||
void makeSound() const;
|
||||
};
|
34
ex00/src/WrongAnimal.cpp
Normal file
34
ex00/src/WrongAnimal.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
#include "WrongAnimal.hpp"
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
WrongAnimal::WrongAnimal()
|
||||
{
|
||||
std::cout << "WrongAnimal()" << std::endl;
|
||||
}
|
||||
|
||||
WrongAnimal::WrongAnimal(const WrongAnimal& src)
|
||||
{
|
||||
*this = src;
|
||||
}
|
||||
|
||||
WrongAnimal& WrongAnimal::operator=(const WrongAnimal &src)
|
||||
{
|
||||
this->type = src.type;
|
||||
return *this;
|
||||
}
|
||||
|
||||
WrongAnimal::~WrongAnimal()
|
||||
{
|
||||
std::cout << "~WrongAnimal()" << std::endl;
|
||||
}
|
||||
|
||||
void WrongAnimal::makeSound() const
|
||||
{
|
||||
std::cout << "OuGABounga" << std::endl;
|
||||
}
|
||||
|
||||
std::string WrongAnimal::getType() const
|
||||
{
|
||||
return this->type;
|
||||
}
|
19
ex00/src/WrongAnimal.hpp
Normal file
19
ex00/src/WrongAnimal.hpp
Normal file
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
class WrongAnimal
|
||||
{
|
||||
public:
|
||||
WrongAnimal();
|
||||
WrongAnimal(const WrongAnimal& src);
|
||||
WrongAnimal &operator=(const WrongAnimal& src);
|
||||
virtual ~WrongAnimal();
|
||||
|
||||
std::string getType() const;
|
||||
|
||||
void makeSound() const;
|
||||
|
||||
protected:
|
||||
std::string type;
|
||||
};
|
24
ex00/src/WrongCat.cpp
Normal file
24
ex00/src/WrongCat.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
#include "WrongCat.hpp"
|
||||
#include <iostream>
|
||||
|
||||
WrongCat::WrongCat()
|
||||
{
|
||||
this->type = "WrongCat";
|
||||
std::cout << "WrongCat()" << std::endl;
|
||||
}
|
||||
|
||||
WrongCat& WrongCat::operator=(const WrongCat& src)
|
||||
{
|
||||
this->type = src.type;
|
||||
return *this;
|
||||
}
|
||||
|
||||
WrongCat::~WrongCat()
|
||||
{
|
||||
std::cout << "~WrongCat()" << std::endl;
|
||||
}
|
||||
|
||||
WrongCat::WrongCat(const WrongCat& src): WrongAnimal()
|
||||
{
|
||||
*this = src;
|
||||
}
|
14
ex00/src/WrongCat.hpp
Normal file
14
ex00/src/WrongCat.hpp
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "./WrongAnimal.hpp"
|
||||
|
||||
class WrongCat : public WrongAnimal
|
||||
{
|
||||
public:
|
||||
WrongCat(const WrongCat& src);
|
||||
WrongCat &operator=(const WrongCat& src);
|
||||
WrongCat();
|
||||
~WrongCat();
|
||||
};
|
24
ex00/src/main.cpp
Normal file
24
ex00/src/main.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
#include <iostream>
|
||||
|
||||
#include "Cat.hpp"
|
||||
#include "Dog.hpp"
|
||||
#include "WrongCat.hpp"
|
||||
|
||||
int main()
|
||||
{
|
||||
const Animal* meta = new Animal();
|
||||
const Animal* j = new Dog();
|
||||
const Animal* i = new Cat();
|
||||
std::cout << j->getType() << " " << std::endl;
|
||||
std::cout << i->getType() << " " << std::endl;
|
||||
i->makeSound(); //will output the cat sound!
|
||||
j->makeSound();
|
||||
meta->makeSound();
|
||||
delete meta;
|
||||
delete j;
|
||||
delete i;
|
||||
const WrongCat* kitten = new WrongCat();
|
||||
kitten->makeSound();
|
||||
delete kitten;
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user