Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программы_Прокофьева.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
54.27 Кб
Скачать

Void main()

{

Second A; //Создание экземпляра

A.wwod_a();

A.wwod_b();

cout<<"sum=";

cout<<A.sum()<<"\n";

}

//р7_exmp3_9.cpp

//Прокофьева Д.С., группа 3270

//Наследование с конструктором

#include<iostream> //Библиотека класса

using namespace std; //Объявление класса

class Sun

{ public: //Открытый доступ

Sun(int m=1):n(m)

{a=new int[n];}

~Sun() {delete[]a;}

Void wwod();

void vyvod();

int out_n() {return n;}

int *out_a() {return a;}

int *a,

n;

};

void Sun::wwod()

{cout<<"Input mass \n";

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

cin>>a[i];

}

void Sun::vyvod()

{cout<<"Output mass \n";

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

cout<<a[i]<<"\t";

cout<<"\t";

}

class Earth:

public Sun //Базовый список

{

public:

Earth(int m=1):Sun(m) {}

int out_max(); //Вывод max значения

int xyz();

};

int Earth::out_max()

{

int len=out_n();

int *k=out_a();

int mx=a[0];

for(int i=1;i<n;i++)

if(mx<a[i])

mx=a[i];

return mx;

}

int Earth::xyz()

{

int len=out_n();

int *k=out_a();

int ch=0;

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

if(ch<0)

ch++;

return ch;

}

Void main()

{ int j;

cout<<"Input \n";

cout<<"j=";

cin>>j;

Earth *A; //Указатель на экземпляр

A=new Earth(j);

A->wwod();

cout<<"\n Output";

A->vyvod();

cout<<"max="<<A->out_max()<<"\n";

cout<<"culc="<<A->xyz()<<"\n";

delete A; //Возвращение памяти

}

//р7_exmp3_10.cpp

//Прокофьева Д.С. группа 3270

//Полиморфизм

#include<iostream> //Библиотека класса

using namespace std; //Объявление класса

class Dh

{ public: //Открытый доступ

int a,

b;

Dh(int m,int n):a(m),b(n) {}

virtual void sss();

void eee();

};

void Dh::sss()

{cout<<"sum=";

cout<<a+b<<"\n";

}

void Dh::eee()

{cout<<"Output \n";

cout<<"a="<<a<<"\n";

cout<<"b="<<b<<"\n";

sss(); //Вызов метода

}

class Bg:

public Dh //Базовый список

{public:

Bg(int c, int d):Dh(c,d) {}

void sss(); //Вычисление произведения

};

void Bg::sss()

{ cout<<"prod=";

cout<<a+b<<"\n";

}

Void main()

{ Bg K(3,7); //Создание экземпряра

K.sss(); //Вызов метода

K.Dh::sss(); //Вызов метода вычисления суммы

}

//р7_exmp3_11.cpp

//Прокофьева Д.С. группа 3270

//Пример на ссылку

#include <iostream>

using namespace std;

//Функция, изменяющая значение фактического параметра

void incref(int &i)

{

i++;}

//Функция, возвращающая ссылку

int & valref(int &i) {return ++i;}

Void main()

{

int value=10;

//Псевдоним переменной

int & refval=value;

refval+=5; // Изменение value через ссылку

// Изменение параметров функции

cout <<value <<"/n";

incref(value);

cout <<value <<"/n";

cout <<& refval <<"/n";

//Функция, возвращающая значение типа ссылка

int j=6;

cout <<j<<"/n";

cout <<valref(j) <<"/n";

cout <<j <<"/n";

}

//р7_exmp3_12.cpp

//Прокофьева Д.С. группа 3270

//Пример на указатель this

#include<iostream>

using namespace std;

class Simple //Объявление класса

{

public:

Simple(); //Конструктор

void wert(int i){cout<<i<< "/n";}

};

//Определение конструктора

Simple::Simple()

{

wert(1);

this->wert(1);

(*this).wert(1);

}

//Везде организован вызов одного и того же метода