Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions animals/animal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

using namespace std;

int main() {

int main()
{
Cat m(4, "Predator", 1.34, 9);
Cow mu(4, "herbivore", 30, 10);
cout << m;
cout << mu;

Turtle t(4, true, "terrestre");
Snake s(0, false, 10);
cout << t;

return 0;
}
}
158 changes: 151 additions & 7 deletions animals/animal.h
Original file line number Diff line number Diff line change
@@ -1,18 +1,162 @@
#pragma once

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

class Animal
{
protected:
int Paws;

Animal(int paws) { Paws = paws; }

class Animal {
public:
float weight; // kg
virtual string about() const
{
return "";
}

int setPaws(int paws_) { Paws = paws_; }
void getPaws() { cout << Paws; }

};

class Mammal : public Animal {

class Mammal : public Animal
{
protected:
Mammal(int paws, string squad) : Animal(paws) { Squad = squad; }

string Squad;

virtual string about() const
{
stringstream ss;
ss << "Paws: " << Paws << ", " << "Squad: " << Squad << endl;
return ss.str();
}

public:
float pregnancyDuration; // days
string setSquad(string squad_) { Squad = squad_; }
void getSquad() { cout << Squad; }

};

class Cat : public Mammal {

class Cat : public Mammal
{
protected:
float Vibrissae_length;
int Lives_number;

public:
float vibrissaLength; // meters
Cat(int paws, string squad, float vibrissae_length, int lives_number) : Mammal(paws, squad) { Vibrissae_length = vibrissae_length; Lives_number = lives_number; }

float setVibrissae_length(float vibrissae_length_) { Vibrissae_length = vibrissae_length_; }
void getVibrissae_length() { cout << Vibrissae_length; }

int setLives_number(int lives_number_) { Lives_number = lives_number_; }
void getLives_number() { cout << Lives_number; }

virtual string about() const
{
stringstream ss;
ss << "Paws: " << Paws << ", Squad: " << Squad << ", Vibrissae length: " << Vibrissae_length << ", Lives number: " << Lives_number << endl;
return ss.str();
}
};


class Cow : public Mammal
{
protected:
int Spots_number;
int Milk_volume;


public:
Cow(int paws, string squad, int spots_number, int milk_volume) : Mammal(paws, squad) { Spots_number = spots_number; Milk_volume = milk_volume; }
Cow(int paws, string squad, int spots_number) : Mammal(paws, squad) { Spots_number = spots_number; Milk_volume = 0; }

int setSpots_number(int spots_number_) { Spots_number = spots_number_; }
void getSpots_number() { cout << Spots_number; }

int setMilk_volume(int milk_volume_) { Milk_volume = milk_volume_; }
void getMilk_volume() { cout << Milk_volume; }

virtual string about() const
{
stringstream ss;
ss << "Paws: " << Paws << ", Squad: " << Squad << ", Spots number: " << Spots_number << ", Milk volume: " << Milk_volume << endl;
return ss.str();
}
};


class Reptile : public Animal
{
protected:
bool Shell;

Reptile(int paws, bool shell) : Animal(paws) { Shell = shell; }

virtual string about() const
{
stringstream ss;
ss << "Paws: " << Paws << ", " << "Shell: " << Shell << endl;
return ss.str();
}

public:
bool setShell(bool shell_) { Shell = shell_; }
void getShell() { cout << Shell; }

};


class Snake : public Reptile
{
protected:
float Lenth;

public:
Snake(int paws, bool shell, float lenth) : Reptile(paws, shell) { Lenth = lenth; }

float setLenth(float lenth_) { Lenth = lenth_; }
void getLenth() { cout << Lenth; }

virtual string about() const
{
stringstream ss;
ss << "Paws: " << Paws << ", Shell: " << Shell << ", Lenth: " << Lenth << endl;
return ss.str();
}
};


class Turtle : public Reptile
{
private:
string Area;

public:
Turtle(int paws, bool shell, string area) : Reptile(paws, shell) { Area = area; }

string setArea(string area_) { Area = area_; }
void getArea() { cout << Area; }

virtual string about() const
{
stringstream ss;
ss << "Paws: " << Paws << ", Shell: " << Shell << ", Area: " << Area << endl;
return ss.str();
}

};

inline ostream& operator<< (ostream& os, const Animal& animal)
{
return os << animal.about();
}
28 changes: 0 additions & 28 deletions vectors/array.cpp

This file was deleted.

21 changes: 0 additions & 21 deletions vectors/array.h

This file was deleted.

Loading