🗊Презентация Объектно-ориентированное программирование. Язык С++

Нажмите для полного просмотра!
Объектно-ориентированное программирование. Язык С++, слайд №1Объектно-ориентированное программирование. Язык С++, слайд №2Объектно-ориентированное программирование. Язык С++, слайд №3Объектно-ориентированное программирование. Язык С++, слайд №4Объектно-ориентированное программирование. Язык С++, слайд №5Объектно-ориентированное программирование. Язык С++, слайд №6Объектно-ориентированное программирование. Язык С++, слайд №7Объектно-ориентированное программирование. Язык С++, слайд №8Объектно-ориентированное программирование. Язык С++, слайд №9Объектно-ориентированное программирование. Язык С++, слайд №10Объектно-ориентированное программирование. Язык С++, слайд №11Объектно-ориентированное программирование. Язык С++, слайд №12Объектно-ориентированное программирование. Язык С++, слайд №13Объектно-ориентированное программирование. Язык С++, слайд №14Объектно-ориентированное программирование. Язык С++, слайд №15Объектно-ориентированное программирование. Язык С++, слайд №16Объектно-ориентированное программирование. Язык С++, слайд №17Объектно-ориентированное программирование. Язык С++, слайд №18Объектно-ориентированное программирование. Язык С++, слайд №19Объектно-ориентированное программирование. Язык С++, слайд №20Объектно-ориентированное программирование. Язык С++, слайд №21Объектно-ориентированное программирование. Язык С++, слайд №22Объектно-ориентированное программирование. Язык С++, слайд №23Объектно-ориентированное программирование. Язык С++, слайд №24Объектно-ориентированное программирование. Язык С++, слайд №25Объектно-ориентированное программирование. Язык С++, слайд №26Объектно-ориентированное программирование. Язык С++, слайд №27Объектно-ориентированное программирование. Язык С++, слайд №28Объектно-ориентированное программирование. Язык С++, слайд №29Объектно-ориентированное программирование. Язык С++, слайд №30Объектно-ориентированное программирование. Язык С++, слайд №31Объектно-ориентированное программирование. Язык С++, слайд №32Объектно-ориентированное программирование. Язык С++, слайд №33Объектно-ориентированное программирование. Язык С++, слайд №34Объектно-ориентированное программирование. Язык С++, слайд №35Объектно-ориентированное программирование. Язык С++, слайд №36Объектно-ориентированное программирование. Язык С++, слайд №37Объектно-ориентированное программирование. Язык С++, слайд №38Объектно-ориентированное программирование. Язык С++, слайд №39Объектно-ориентированное программирование. Язык С++, слайд №40Объектно-ориентированное программирование. Язык С++, слайд №41Объектно-ориентированное программирование. Язык С++, слайд №42Объектно-ориентированное программирование. Язык С++, слайд №43Объектно-ориентированное программирование. Язык С++, слайд №44Объектно-ориентированное программирование. Язык С++, слайд №45Объектно-ориентированное программирование. Язык С++, слайд №46Объектно-ориентированное программирование. Язык С++, слайд №47Объектно-ориентированное программирование. Язык С++, слайд №48Объектно-ориентированное программирование. Язык С++, слайд №49

Содержание

Вы можете ознакомиться и скачать презентацию на тему Объектно-ориентированное программирование. Язык С++. Доклад-сообщение содержит 49 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Объектно-ориентированное программирование (ООП)
Язык С++
Описание слайда:
Объектно-ориентированное программирование (ООП) Язык С++

Слайд 2





Три кита ООП
Инкапсуляция (encapsulation)
Полиморфизм (polymorphism)
Наследование (inheritance)
Описание слайда:
Три кита ООП Инкапсуляция (encapsulation) Полиморфизм (polymorphism) Наследование (inheritance)

Слайд 3





Инкапсуляция
Объединение данных и функций их обработки
Скрытие информации, ненужной для использования данных
Описание слайда:
Инкапсуляция Объединение данных и функций их обработки Скрытие информации, ненужной для использования данных

Слайд 4





Полиморфизм
в биологии - наличие в пределах одного вида резко отличных по облику особей 
в языках программирования - взаимозаменяемость объектов с одинаковым интерфейсом 
   «Один интерфейс, множество реализаций».
Описание слайда:
Полиморфизм в биологии - наличие в пределах одного вида резко отличных по облику особей в языках программирования - взаимозаменяемость объектов с одинаковым интерфейсом «Один интерфейс, множество реализаций».

Слайд 5





Наследование
Возможность создания иерархии классов
Наследование потомками свойств предков
Возможность изменения наследуемых свойств и добавления новых
Описание слайда:
Наследование Возможность создания иерархии классов Наследование потомками свойств предков Возможность изменения наследуемых свойств и добавления новых

Слайд 6





Классы. Инкапсуляция. Полиморфизм.
Основные понятия:
Описание класса
Конструкторы и деструкторы
Ссылки и указатели. Указатель this
Функции и операции
Перегрузка функций и операторов
Описание слайда:
Классы. Инкапсуляция. Полиморфизм. Основные понятия: Описание класса Конструкторы и деструкторы Ссылки и указатели. Указатель this Функции и операции Перегрузка функций и операторов

Слайд 7





Описание класса

Класс – это способ описания сущности, определяющий состояние и поведение, зависящее от этого состояния, а также правила для взаимодействия с данной сущностью. 


С точки зрения программирования, класс является абстрактным типом данных, определяемым пользователем, который содержит набор данных (полей, атрибутов, членов класса) и функций для работы с ними (методов).
Описание слайда:
Описание класса Класс – это способ описания сущности, определяющий состояние и поведение, зависящее от этого состояния, а также правила для взаимодействия с данной сущностью. С точки зрения программирования, класс является абстрактным типом данных, определяемым пользователем, который содержит набор данных (полей, атрибутов, членов класса) и функций для работы с ними (методов).

Слайд 8





Описание класса
class myclass
{
private:			//ключ доступа
	int a;			//члены-данные, свойства 
	float b;			//структура в языке С
public:
void setvalue(int, float);	//члены-функции, 
int geta();			//методы, 
float getb();
};
Описание слайда:
Описание класса class myclass { private: //ключ доступа int a; //члены-данные, свойства float b; //структура в языке С public: void setvalue(int, float); //члены-функции, int geta(); //методы, float getb(); };

Слайд 9





Описание класса
void myclass::setvalue(int sa, float sb)
{
	a=sa;
	b=sb;  //или this->b=sb;
}
int myclass::geta()
{
	return a;
}
float myclass::getb()
{
	return b;
}
void main()
{
	myclass mc;
cout<<mc.geta()<<"\n"<<mc.getb()<<"\n";
	mc.setvalue(31, 3.5);
	cout<<mc.geta()<<"\n"<<mc.getb()<<"\n";
}
Описание слайда:
Описание класса void myclass::setvalue(int sa, float sb) { a=sa; b=sb; //или this->b=sb; } int myclass::geta() { return a; } float myclass::getb() { return b; } void main() { myclass mc; cout<<mc.geta()<<"\n"<<mc.getb()<<"\n"; mc.setvalue(31, 3.5); cout<<mc.geta()<<"\n"<<mc.getb()<<"\n"; }

Слайд 10





Конструкторы и деструкторы класса
#include <iostream>
using namespace std;
class myclass
{
private:
	int a;
	float b;
	int *m;
public:
	myclass();                           //конструктор по умолчанию
	myclass(int, float);
	myclass(int, float, int*);
	myclass(const myclass &); //конструктор копирования 
	~myclass();                         //деструктор
	void print();
};
Описание слайда:
Конструкторы и деструкторы класса #include <iostream> using namespace std; class myclass { private: int a; float b; int *m; public: myclass(); //конструктор по умолчанию myclass(int, float); myclass(int, float, int*); myclass(const myclass &); //конструктор копирования ~myclass(); //деструктор void print(); };

Слайд 11





Конструкторы и деструкторы класса
myclass::myclass()
{
		a=0;
		b=0.0;
	m = new int[5];
}
myclass::myclass(int n, float f)
{
	m = new int[5];
	this->a=n;
	this->b=f;
}
myclass::myclass(int n, float f, int *p)
{
	m = new int[5];
	a=n;
	b=f;
	for (int i=0; i<5; i++)
		m[i]=p[i];
}
Описание слайда:
Конструкторы и деструкторы класса myclass::myclass() { a=0; b=0.0; m = new int[5]; } myclass::myclass(int n, float f) { m = new int[5]; this->a=n; this->b=f; } myclass::myclass(int n, float f, int *p) { m = new int[5]; a=n; b=f; for (int i=0; i<5; i++) m[i]=p[i]; }

Слайд 12





Указатели и ссылки
Указатель – переменная, значением которой является адрес некоторой области памяти.
int *a, n;		*a=10; a=&n;
float *b;		…..
char *c;		…..
void *f;		…..
Описание слайда:
Указатели и ссылки Указатель – переменная, значением которой является адрес некоторой области памяти. int *a, n; *a=10; a=&n; float *b; ….. char *c; ….. void *f; …..

Слайд 13





Указатели и ссылки на объект
   myclass *pmc, mc1,mc2(45, 3.5);	
При объявлении указателя на объект
выделяется память только для указателя!
   pmc->a=23; //ошибка-не выделена память под объект
   *pmc=mc1; pmc->a=23; (*pmc).b=12.05; 
   pmc=&mc2;
Описание слайда:
Указатели и ссылки на объект myclass *pmc, mc1,mc2(45, 3.5); При объявлении указателя на объект выделяется память только для указателя! pmc->a=23; //ошибка-не выделена память под объект *pmc=mc1; pmc->a=23; (*pmc).b=12.05; pmc=&mc2;

Слайд 14





Указатели и ссылки
Ссылка – понятие, родственное указателю. Является скрытым указателем. Во всех случаях ее можно использовать как еще одно имя переменной
Ссылку можно:
Передавать в функцию
Возвращать из функции
Использовать как независимую переменную
При использовании ссылки как независимой переменной, она
должна быть проинициирована при объявлении
myclass mc(12, 25.6, dig), &s=mc;
Описание слайда:
Указатели и ссылки Ссылка – понятие, родственное указателю. Является скрытым указателем. Во всех случаях ее можно использовать как еще одно имя переменной Ссылку можно: Передавать в функцию Возвращать из функции Использовать как независимую переменную При использовании ссылки как независимой переменной, она должна быть проинициирована при объявлении myclass mc(12, 25.6, dig), &s=mc;

Слайд 15





Указатели. Передача в функцию
void swap(int *a, int *b)
{
	int d;
	d=*a;
	*a=*b;
	*b=d;
}
void main()
{
	int a=10, b=20;
	cout<<"a="<<a<<" b="<<b<<"\n";	
	swap(&a,&b);
	cout<<"a="<<a<<" b="<<b<<"\n";
}
Описание слайда:
Указатели. Передача в функцию void swap(int *a, int *b) { int d; d=*a; *a=*b; *b=d; } void main() { int a=10, b=20; cout<<"a="<<a<<" b="<<b<<"\n"; swap(&a,&b); cout<<"a="<<a<<" b="<<b<<"\n"; }

Слайд 16





Ссылки. Передача в функцию
void swp(int &a, int &b)
{
	int d;
	d=a;
	a=b;
	b=d;
}
void main()
{
	int a=10, b=20;
	cout<<"a="<<a<<" b="<<b<<"\n";
	swp(a,b);
	cout<<"a="<<a<<" b="<<b<<"\n";
}
Описание слайда:
Ссылки. Передача в функцию void swp(int &a, int &b) { int d; d=a; a=b; b=d; } void main() { int a=10, b=20; cout<<"a="<<a<<" b="<<b<<"\n"; swp(a,b); cout<<"a="<<a<<" b="<<b<<"\n"; }

Слайд 17





Указатель this
C++ содержит специальный указатель this. Он автоматически передается любой функции-члену при ее вызове и указывает на объект, генерирующий вызов.
Описание слайда:
Указатель this C++ содержит специальный указатель this. Он автоматически передается любой функции-члену при ее вызове и указывает на объект, генерирующий вызов.

Слайд 18





Перегрузка функций
Сигнатурой функции называют список типов ее параметров и возвращаемого значения.
В С++ можно определять функции с одним и тем же именем, но разной сигнатурой.  Эта возможность называется перегрузкой функции.
Перегрузка функций является проявлением полиморфизма.
Описание слайда:
Перегрузка функций Сигнатурой функции называют список типов ее параметров и возвращаемого значения. В С++ можно определять функции с одним и тем же именем, но разной сигнатурой. Эта возможность называется перегрузкой функции. Перегрузка функций является проявлением полиморфизма.

Слайд 19





Операторы
class myclass
{
private:
	int a;
	float b;
	int *m;
public:
	myclass();
	myclass(int, float);
	myclass(int, float, int*);
	myclass(const myclass &);
	~myclass();
	void print();
	myclass & operator=(const myclass &);
};
Оператор * можно рассматривать как функцию с именем operator*

Вызов этой функции происходит без операции «.»:
x=y;  
или, что менее удобно:
x.operator=(y);
Описание слайда:
Операторы class myclass { private: int a; float b; int *m; public: myclass(); myclass(int, float); myclass(int, float, int*); myclass(const myclass &); ~myclass(); void print(); myclass & operator=(const myclass &); }; Оператор * можно рассматривать как функцию с именем operator* Вызов этой функции происходит без операции «.»: x=y; или, что менее удобно: x.operator=(y);

Слайд 20





Оператор присваивания
myclass & myclass::operator=(const myclass &mc)
{
	m= new int[5];
	for (int i=0; i<5; i++)
		m[i]=mc.m[i];
	a=mc.a; b=mc.b;
	print();
	return *this;
}
Описание слайда:
Оператор присваивания myclass & myclass::operator=(const myclass &mc) { m= new int[5]; for (int i=0; i<5; i++) m[i]=mc.m[i]; a=mc.a; b=mc.b; print(); return *this; }

Слайд 21





Задание 1. Строки
class MyString
{
private:
   char *data;
   ...
};
Описание слайда:
Задание 1. Строки class MyString { private: char *data; ... };

Слайд 22





Шаблоны функций
Шаблоны функций
Шаблоны классов
Шаблон позволяет отделить алгоритмы от конкретных типов данных. 
Шаблон может применяться к любым типам данных без переписывания кода.
Описание слайда:
Шаблоны функций Шаблоны функций Шаблоны классов Шаблон позволяет отделить алгоритмы от конкретных типов данных. Шаблон может применяться к любым типам данных без переписывания кода.

Слайд 23





Шаблоны функций
Шаблон функции – параметризованная (родовая, generic) функция, которая помимо обычных параметров имеет еще один – некоторый тип.
Шаблоны функций чаще всего используются при создании функций, выполняющих одни и те же действия, но с данными различных типов.
Описание слайда:
Шаблоны функций Шаблон функции – параметризованная (родовая, generic) функция, которая помимо обычных параметров имеет еще один – некоторый тип. Шаблоны функций чаще всего используются при создании функций, выполняющих одни и те же действия, но с данными различных типов.

Слайд 24





Шаблоны функций
Описание слайда:
Шаблоны функций

Слайд 25





Шаблоны классов
Шаблон класса – параметризованный класс (родовой, generic), которому тип инкапсулированных в нем данных передается в качестве параметра.
Чаще всего шаблоны используются при создании контейнерных классов
Описание слайда:
Шаблоны классов Шаблон класса – параметризованный класс (родовой, generic), которому тип инкапсулированных в нем данных передается в качестве параметра. Чаще всего шаблоны используются при создании контейнерных классов

Слайд 26





Шаблоны классов. Односвязный список
class LIST
{
	class Node
	{
	public:
		int dat;
		Node * next;
		Node (int d=0)
		{
		       dat=d; next=0;
		}
	};
	Node * head;
public:
	LIST (){head=0;}
	~LIST ();
	void insert_beg (int);
	void insert_end (int);
	void del (int);
	int find(int);
	void display();
};
Описание слайда:
Шаблоны классов. Односвязный список class LIST { class Node { public: int dat; Node * next; Node (int d=0) { dat=d; next=0; } }; Node * head; public: LIST (){head=0;} ~LIST (); void insert_beg (int); void insert_end (int); void del (int); int find(int); void display(); };

Слайд 27





Шаблоны классов. 
Шаблоны функций
void  LIST::insert_beg (int data)
{
	Node * nel=new Node(data);
	nel->next=head;
	head=nel;
}
Описание слайда:
Шаблоны классов. Шаблоны функций void LIST::insert_beg (int data) { Node * nel=new Node(data); nel->next=head; head=nel; }

Слайд 28





Шаблоны классов. Использование
void main()
{
	LIST <char> lst;
	char i;
	do
	{
		cin>>i;
		if (i!=48)
			lst.insert_beg(i);
	} while (i!=48);
	lst.display();
}
Описание слайда:
Шаблоны классов. Использование void main() { LIST <char> lst; char i; do { cin>>i; if (i!=48) lst.insert_beg(i); } while (i!=48); lst.display(); }

Слайд 29





Задание 2. Шаблоны классов
Реализовать шаблон класса List (методы, объявленные в классе).
Реализовать конструктор копирования и оператор присваивания для класса List.
Описание слайда:
Задание 2. Шаблоны классов Реализовать шаблон класса List (методы, объявленные в классе). Реализовать конструктор копирования и оператор присваивания для класса List.

Слайд 30





Наследование
Наследование – механизм, поддерживающий
построение иерархии классов
полиморфизм
class имя_произв_кл: ключ_доступа имя_баз_кл
{
	….
};
Описание слайда:
Наследование Наследование – механизм, поддерживающий построение иерархии классов полиморфизм class имя_произв_кл: ключ_доступа имя_баз_кл { …. };

Слайд 31





Наследование. Ключевые понятия
Ключи доступа
Простое наследование. Конструкторы и деструкторы.
Раннее и позднее связывание
Виртуальные методы. Абстрактные классы
Множественное наследование
Описание слайда:
Наследование. Ключевые понятия Ключи доступа Простое наследование. Конструкторы и деструкторы. Раннее и позднее связывание Виртуальные методы. Абстрактные классы Множественное наследование

Слайд 32





Ключи доступа
Описание слайда:
Ключи доступа

Слайд 33





Конструкторы и деструкторы
Описание слайда:
Конструкторы и деструкторы

Слайд 34





Конструкторы и деструкторы
Описание слайда:
Конструкторы и деструкторы

Слайд 35





Виртуальные методы
Описание слайда:
Виртуальные методы

Слайд 36





Виртуальные методы
Описание слайда:
Виртуальные методы

Слайд 37





Задание 3.
Реализовать иерархию классов геометрических объектов
Описание слайда:
Задание 3. Реализовать иерархию классов геометрических объектов

Слайд 38





Задание 3.
Класс Shape должен содержать такие свойства и методы:
Периметр и площадь фигуры;
Параллельный перенос фигуры;
Поворот фигуры;
Печать информации о фигуре;
Определение класса фигуры;
Методы в классе Shape  виртуальные. Они должны определяться в конкретных классах.
Описание слайда:
Задание 3. Класс Shape должен содержать такие свойства и методы: Периметр и площадь фигуры; Параллельный перенос фигуры; Поворот фигуры; Печать информации о фигуре; Определение класса фигуры; Методы в классе Shape виртуальные. Они должны определяться в конкретных классах.

Слайд 39





Создание пользовательских интерфейсов средствами MFC
Пакет Microsoft Foundation Classes (MFC) — библиотека на языке C++, разработанная Microsoft и призванная облегчить разработку GUI-приложений (Graphical User Interface ) для Microsoft Windows путем использования богатого набора библиотечных классов.
Описание слайда:
Создание пользовательских интерфейсов средствами MFC Пакет Microsoft Foundation Classes (MFC) — библиотека на языке C++, разработанная Microsoft и призванная облегчить разработку GUI-приложений (Graphical User Interface ) для Microsoft Windows путем использования богатого набора библиотечных классов.

Слайд 40





Создание проекта. Шаг 1
Описание слайда:
Создание проекта. Шаг 1

Слайд 41





Создание проекта
В простейшем случае программа, написанная с помощью библиотеки MFC, 
содержит два класса, порождаемые от классов иерархии 
библиотеки: класс, предназначенный для создания приложения, и 
класс, предназначенный для создания окна. 
class CTestGraphApp : public CWinApp
{
…
};
class CTestGraphDlg : public CDialog
{
};
Описание слайда:
Создание проекта В простейшем случае программа, написанная с помощью библиотеки MFC, содержит два класса, порождаемые от классов иерархии библиотеки: класс, предназначенный для создания приложения, и класс, предназначенный для создания окна. class CTestGraphApp : public CWinApp { … }; class CTestGraphDlg : public CDialog { };

Слайд 42





Создание проекта. Шаг 2
Описание слайда:
Создание проекта. Шаг 2

Слайд 43





Создание проекта. Шаг 3
Помещаем на диалог элемент, в котором будет рисоваться график (н-р Static Text)
В окне свойств задаем ему уникальный ID IDC_GRAPH
Добавляем в класс IDC_GRAPH переменную типа CStatic m_DrawArea;
Связываем переменную m_DrawArea и элемент IDC_GRAPH: 
DDX_Control(pDX, IDC_GRAPH, m_DrawArea); 
в методе DoDataExchange
Описание слайда:
Создание проекта. Шаг 3 Помещаем на диалог элемент, в котором будет рисоваться график (н-р Static Text) В окне свойств задаем ему уникальный ID IDC_GRAPH Добавляем в класс IDC_GRAPH переменную типа CStatic m_DrawArea; Связываем переменную m_DrawArea и элемент IDC_GRAPH: DDX_Control(pDX, IDC_GRAPH, m_DrawArea); в методе DoDataExchange

Слайд 44


Объектно-ориентированное программирование. Язык С++, слайд №44
Описание слайда:

Слайд 45





Создание проекта. Шаг 4
Описание слайда:
Создание проекта. Шаг 4

Слайд 46





Создание проекта. Шаг 5
Добавляем на диалоговое окно кнопку, при нажатии на которую будет присходить отрисовка графика
Двойным щечком по кнопке создаем соответствующий метод
Описание слайда:
Создание проекта. Шаг 5 Добавляем на диалоговое окно кнопку, при нажатии на которую будет присходить отрисовка графика Двойным щечком по кнопке создаем соответствующий метод

Слайд 47





Контекст устройств
Графический ввод-вывод в Windows унифицирован для работы с различными физическими устройствами. Для этого предусмотрен специальный объект, называемый контекстом устройства (Device context). Рисование на некотором абстрактном DC. Если DC связать с окном на экране, то рисование будет в происходить в окне; если связать его с принтером – то на принтере; если с файлом – то, соответственно, в файл.
Класс CClientDC – разновидность контекстов устройств; позволяет выводить графику в рабочей области окна.
Для рисования в некоторой функции (н-р, обработчике события нажатия кнопки), нужно получить контекст устройства. Это делается так: CClientDC dc(this);
Описание слайда:
Контекст устройств Графический ввод-вывод в Windows унифицирован для работы с различными физическими устройствами. Для этого предусмотрен специальный объект, называемый контекстом устройства (Device context). Рисование на некотором абстрактном DC. Если DC связать с окном на экране, то рисование будет в происходить в окне; если связать его с принтером – то на принтере; если с файлом – то, соответственно, в файл. Класс CClientDC – разновидность контекстов устройств; позволяет выводить графику в рабочей области окна. Для рисования в некоторой функции (н-р, обработчике события нажатия кнопки), нужно получить контекст устройства. Это делается так: CClientDC dc(this);

Слайд 48





Отрисовка графика
	
void CGraphDlg::OnBnClickedDraw()
{
	// TODO: добавьте свой код обработчика уведомлений
	//Создаем контекст, в котором будем рисовать
	CClientDC dc(&m_DrawArea);
		
	//Узнаем размеры прямоугольника
	CRect rc;  //Графический объект
	m_DrawArea.GetClientRect(&rc);
	int w = rc.Width();
	int h = rc.Height();
	
	int x_start = 10;
	int y_start = h-10;
Описание слайда:
Отрисовка графика void CGraphDlg::OnBnClickedDraw() { // TODO: добавьте свой код обработчика уведомлений //Создаем контекст, в котором будем рисовать CClientDC dc(&m_DrawArea); //Узнаем размеры прямоугольника CRect rc; //Графический объект m_DrawArea.GetClientRect(&rc); int w = rc.Width(); int h = rc.Height(); int x_start = 10; int y_start = h-10;

Слайд 49


Объектно-ориентированное программирование. Язык С++, слайд №49
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию