Пример 1: Класс, описывающий животное

#include <iostream>

#include <conio.h>

#include <windows.h>

#include <string>

#include <stdlib.h>

using namespace std;

/*Класс описывает животное*/

class Animal

{

string animalName;//Имя животного

double weight;//вес животного

double age;//возраст животного

public:

Animal(string name, double w, double a):animalName(name), weight(w),age(a)//Основной конструктор

{

if(weight<0)

weight=0;

if(age<0)

age=0;

}

Animal(const Animal& obj)//Конструктор копирования

{

animalName = obj.animalName;

weight = obj.weight;

age = obj.age;

}

string GetAnimalName()const

{

return animalName;

}

double GetAnimalWeight()const

{

return weight;

}

double GetAnimalAge()const

{

return age;

}

bool Eat(unsigned food) //Метод "есть" - вы кормите животное

{

int i = rand();

i %= 2;

if(i)//оно может быть сытым и не будет кушать

{

Weight += food;

cout<<"Ваше животное съело "<<food<<" кг пищи.\n";

return true;

}

cout<<"Ваше животное ещё не проголодалось.\n";

return false;

}

void SetAnimalName(string s)

{

animalName=s;

}

bool SetAnimalAge(double a)

{

if(a>=0)

{

Age = a;

return true;

}

return false;

}

void Output()const

{

cout<<"Имя животного: "<<animalName<<

"\nВес: "<<weight<<

"\nВозраст: "<<age<<endl;

}

};

int main()

{

//Настройки шрифтов и региональных стандартов:

if(SetConsoleCP(1251)==0)

//проверка правильности установки кодировки символов для ввода

{

cerr<<"Fialed to set codepage!"<<endl;

/* если не удалось установить кодовую страницу, вывод сообщения об ошибке */

}

if(SetConsoleOutputCP(1251)==0)//тоже самое для вывода

{

cerr<<"Failed to set OUTPUT page!"<<endl;

}

Animal a("Кошка", 10, 0.5);

a.Output();

for(int i=0; i<10; i++)

a.Eat(1);

a.Output();

Animal b(a);

b.SetAnimalName("Собака");

b.Output();

b.Eat(5);

b.Output();

_getch();

return 0;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: