Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба6 / Laba 6 (2)
.cpp#include <iostream>
#include <locale>
using namespace std;
class animal {
bool fur;
void set_fur() { fur = true; }
protected:
int weight;
void set_weight(int w) { weight = w; }
public:
int luck;
void set_luck(int l) { luck = l; }
bool is_lucky() { return (luck > 15000); }
};
class rabbit : public animal {
protected:
bool hungry;
public:
void set_luck(double d) { luck = d * 1000; }
void set_luck() { luck = 10000; }
bool is_hungry() { return hungry; }
};
// Если наследование protected: class rabbit : protected animal
class rabbit_protected : protected animal {
protected:
bool hungry;
public:
void set_luck(double d) { luck = d * 1000; }
void set_luck() { luck = 10000; }
bool is_hungry() { return hungry; }
};
int main() {
setlocale(LC_ALL, "ru_RU.UTF-8");
rabbit r;
// rabbit_protected rp; // Для сравнения
// Доступные функции для rabbit с public наследованием:
r.set_luck(1000); // public из rabbit
r.set_luck(); // public из rabbit
r.set_luck(5.5); // public из rabbit
r.is_lucky(); // public из animal
// r.luck = 10; // public из animal
// НЕ доступные:
// r.set_fur(); // private в animal
// r.set_weight(50); // protected в animal
// r.weight = 60; // protected в animal
// r.hungry = true; // protected в rabbit
cout << "Для rabbit с public наследованием доступны:" << endl;
cout << "- set_luck() (все перегрузки)" << endl;
cout << "- is_lucky()" << endl;
cout << "- luck (поле)" << endl;
cout << "\nДля rabbit с protected наследованием НЕ доступны:" << endl;
cout << "- Все public члены animal становятся protected" << endl;
cout << "- В main доступны только методы самого rabbit" << endl;
return 0;
}
Соседние файлы в папке Лаба6
