Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Описать четыре класса которые последовательно наследуют друг друга, последовательными номерами классов 1, 2, 3, 4.
- //
- //Реализовать программу, в которой использовать единственный указатель на объект базового класса(номер класса 1).
- //
- //Наследственность реализовать так, что можно было вызвать методы, принадлежащие объекту конкретного класса, только через объект данного класса.
- //
- //В закрытом разделе каждого класса определены два свойства : строкового типа для наименования объекта и целого типа для значения определенного целочисленного выражения.
- //
- //Описание каждого класса содержит один параметризированный конструктор с строковым и целочисленным параметром.
- //
- //В реализации каждого конструктора объекта определяются значения закрытых свойств :
- //
- //Наименование объекта по шаблону : «значение строкового параметра»_«номер класса»;
- //Целочисленного свойства значением выражения возведения в степень номера класса целочисленного значения параметра конструктора.
- //Еще в описании каждого класса определен метод с одинаковым наименованием для всех классов, реализующий вывод значений закрытых свойств класса.
- //
- //В основной функции реализовать алгоритм :
- //
- //Вводиться идентификатор и натуральное число от 2 до 10.
- //Создать объект класса 4, используя параметризированный конструктор, которому в качестве аргументов передаются введенный идентификатор и натуральное число.
- //Построчно, для всех объектов согласно наследственности, от объекта базового(класс 1) до производного объекта(класса 4) вывести наименование объекта класса и значение целочисленного свойства.
- #include <string>
- #include <iostream>
- using namespace std;
- //Класс 1:
- class BaseClass
- {
- private:
- string name;
- int value;
- public:
- BaseClass(string name, int value)
- {
- this->name = name + "_1";
- this->value = value;
- }
- void PrintValues()
- {
- cout << "Name: " << name << endl;
- cout << "Value: " << value << endl;
- }
- };
- //Класс 2:
- class DerivedClass1 : public BaseClass
- {
- private:
- string name;
- int value;
- public:
- DerivedClass1(string name, int value) : BaseClass(name, value)
- {
- this->value = pow(value, 2);
- }
- void PrintValues()
- {
- cout << "Name: " << name << endl;
- cout << "Value: " << value << endl;
- }
- };
- //Класс 3:
- class DerivedClass2 : public DerivedClass1
- {
- private:
- string name;
- int value;
- public:
- DerivedClass2(string name, int value) : DerivedClass1(name, value)
- {
- this->value = pow(value, 3);
- }
- void PrintValues()
- {
- cout << "Name: " << name << endl;
- cout << "Value: " << value << endl;
- }
- };
- //Класс 4:
- class DerivedClass3 : public DerivedClass2
- {
- private:
- string name;
- int value;
- public:
- DerivedClass3(string name, int value) : DerivedClass2(name, value)
- {
- this->value = pow(value, 4);
- }
- void PrintValues()
- {
- cout << "Name: " << name << endl;
- cout << "Value: " << value << endl;
- }
- };
- int main()
- {
- string name;
- int value;
- cout << "Enter name and value: ";
- cin >> name >> value;
- BaseClass* base;
- base = new DerivedClass3(name, value);
- base->PrintValues();
- delete base;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement