🗊Презентация Объектно-ориентированное программирование (ООП)

Нажмите для полного просмотра!
Объектно-ориентированное программирование (ООП), слайд №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Объектно-ориентированное программирование (ООП), слайд №50Объектно-ориентированное программирование (ООП), слайд №51Объектно-ориентированное программирование (ООП), слайд №52Объектно-ориентированное программирование (ООП), слайд №53Объектно-ориентированное программирование (ООП), слайд №54Объектно-ориентированное программирование (ООП), слайд №55Объектно-ориентированное программирование (ООП), слайд №56Объектно-ориентированное программирование (ООП), слайд №57Объектно-ориентированное программирование (ООП), слайд №58Объектно-ориентированное программирование (ООП), слайд №59Объектно-ориентированное программирование (ООП), слайд №60Объектно-ориентированное программирование (ООП), слайд №61Объектно-ориентированное программирование (ООП), слайд №62Объектно-ориентированное программирование (ООП), слайд №63Объектно-ориентированное программирование (ООП), слайд №64

Содержание

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

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


Слайд 1





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

Слайд 2





Язык С++
Разработан в начале 80-х годов
Бьёрном Страуструпом
Поддерживет парадигмы програмирования:
процедурное
объектно- ориентированное
обобщенное
Описание слайда:
Язык С++ Разработан в начале 80-х годов Бьёрном Страуструпом Поддерживет парадигмы програмирования: процедурное объектно- ориентированное обобщенное

Слайд 3





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

Слайд 4





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

Слайд 5





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

Слайд 6





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

Слайд 7





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

Слайд 8





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

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


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

Слайд 9





Описание класса
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(); };

Слайд 10





Описание класса
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"; }

Слайд 11





Конструкторы и деструкторы класса
#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(); };

Слайд 12





Конструкторы и деструкторы класса
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]; }

Слайд 13





Пример. Телефонная станция
Файл tele.h
#include  <iostream>
#include  <string>
#include <locale>
using namespace std;
#define ssn 5  //количество абонентов
class Exchange;
class Phone
{
private:
   string dialtype;    //дисковый или кнопочный
   string color;
   int price;
   string num;//члены-данные, свойства 
public:
   Phone();
Описание слайда:
Пример. Телефонная станция Файл tele.h #include <iostream> #include <string> #include <locale> using namespace std; #define ssn 5 //количество абонентов class Exchange; class Phone { private: string dialtype; //дисковый или кнопочный string color; int price; string num;//члены-данные, свойства public: Phone();

Слайд 14





Пример. Телефонная станция
Файл tele.cpp
#include  "tele.h"
Phone::Phone(){}
Phone::Phone(string, string){}
Phone::Phone(string dt, string c, string n, int p)
{
   dialtype=dt;
   color=c;
   num=n;
   price=p;
}
Phone::Phone(string n)
{
   dialtype="but";
   color="";
   num=n;
   price=100;
}
Описание слайда:
Пример. Телефонная станция Файл tele.cpp #include "tele.h" Phone::Phone(){} Phone::Phone(string, string){} Phone::Phone(string dt, string c, string n, int p) { dialtype=dt; color=c; num=n; price=p; } Phone::Phone(string n) { dialtype="but"; color=""; num=n; price=100; }

Слайд 15





Пример. Телефонная станция
Файл exchange.cpp
#include  "tele.h"
Exchange::Exchange(Phone *sss)
{
   int i;
   for (i=0; i<ssn; i++)
   subscribers[i]=sss[i];
}
void Exchange::transferCall(string from, string to)
{
   int i;
   for (i=0; i<ssn; i++)
      if(subscribers[i].getNumber()==to)
          break;
      if (i==ssn)
      {
         cout<<"Набранный вами номер не существует\n";
         return;
      }
   subscribers[i].accept(from);
}
Описание слайда:
Пример. Телефонная станция Файл exchange.cpp #include "tele.h" Exchange::Exchange(Phone *sss) { int i; for (i=0; i<ssn; i++) subscribers[i]=sss[i]; } void Exchange::transferCall(string from, string to) { int i; for (i=0; i<ssn; i++) if(subscribers[i].getNumber()==to) break; if (i==ssn) { cout<<"Набранный вами номер не существует\n"; return; } subscribers[i].accept(from); }

Слайд 16





Пример. Телефонная станция
Описание слайда:
Пример. Телефонная станция

Слайд 17





Указатели и ссылки
Указатель – переменная, значением которой является адрес некоторой области памяти.
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; …..

Слайд 18





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

Слайд 19





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

Слайд 20





Указатели. Передача в функцию
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"; }

Слайд 21





Ссылки. Передача в функцию
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"; }

Слайд 22





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

Слайд 23





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

Слайд 24





Операторы
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);

Слайд 25





Оператор присваивания
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; }

Слайд 26





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

Слайд 27





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

Слайд 28





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

Слайд 29





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

Слайд 30





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

Слайд 31





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

Слайд 32





Шаблоны классов. 
Шаблоны функций
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; }

Слайд 33





Шаблоны классов. Использование
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(); }

Слайд 34





Итераторы. Что это такое и зачем они нужны
Итератор —  объект, предоставляющий доступ к элементам некоторого контейнера (массива, списка, стека) и позволяющий перебирать его элементы.
Главное предназначение итераторов — предоставление пользователю возможности обращаться к любому элементу контейнера при сокрытии внутренней структуры контейнера. Это позволяет контейнеру хранить элементы любым способом при допустимости работы пользователя с ним как с простой последовательностью или списком. 
Проектирование класса итератора обычно тесно связано с соответствующим классом контейнера. Обычно контейнер предоставляет методы создания итераторов.
Описание слайда:
Итераторы. Что это такое и зачем они нужны Итератор — объект, предоставляющий доступ к элементам некоторого контейнера (массива, списка, стека) и позволяющий перебирать его элементы. Главное предназначение итераторов — предоставление пользователю возможности обращаться к любому элементу контейнера при сокрытии внутренней структуры контейнера. Это позволяет контейнеру хранить элементы любым способом при допустимости работы пользователя с ним как с простой последовательностью или списком. Проектирование класса итератора обычно тесно связано с соответствующим классом контейнера. Обычно контейнер предоставляет методы создания итераторов.

Слайд 35





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

Слайд 36





Итераторы. Что это такое и зачем они нужны
	class Iterator {
		Node *cur;
	public:
		Iterator(Node *);
             Iterator(const Iterator &);
		Iterator & operator++();
		int operator!=(Node *);
	T& operator*();
	T* operator->() ;
     };
Описание слайда:
Итераторы. Что это такое и зачем они нужны class Iterator { Node *cur; public: Iterator(Node *); Iterator(const Iterator &); Iterator & operator++(); int operator!=(Node *); T& operator*(); T* operator->() ; };

Слайд 37





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

Слайд 38


Объектно-ориентированное программирование (ООП), слайд №38
Описание слайда:

Слайд 39





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

Слайд 40





Наследование
class Phone
{
protected:
   string dialtype;    //дисковый, кнопочный, сенсорный
   string color;
   string num; //члены-данные, свойства 
   int price;
public:
   Phone();
   Phone(string, string);
   Phone(string, string, string, int);
   Phone(string);
   void accept(string); //принимать звонок с номера
   void propagate(string, Exchange); //вызывать номер
   void info();  //выводить информацию о себе
   string getNumber();
};
Описание слайда:
Наследование class Phone { protected: string dialtype; //дисковый, кнопочный, сенсорный string color; string num; //члены-данные, свойства int price; public: Phone(); Phone(string, string); Phone(string, string, string, int); Phone(string); void accept(string); //принимать звонок с номера void propagate(string, Exchange); //вызывать номер void info(); //выводить информацию о себе string getNumber(); };

Слайд 41





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

Слайд 42





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

Слайд 43





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

Слайд 44





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

Слайд 45





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

Слайд 46





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

Слайд 47





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

Слайд 48





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

Слайд 49





Чистые виртуальные методы. Абстрактные классы
Описание слайда:
Чистые виртуальные методы. Абстрактные классы

Слайд 50


Объектно-ориентированное программирование (ООП), слайд №50
Описание слайда:

Слайд 51


Объектно-ориентированное программирование (ООП), слайд №51
Описание слайда:

Слайд 52





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

Слайд 53





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

Слайд 54





Создание пользовательских интерфейсов средствами 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 путем использования богатого набора библиотечных классов.

Слайд 55





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

Слайд 56





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

Слайд 57





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

Слайд 58





Создание проекта. Шаг 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

Слайд 59


Объектно-ориентированное программирование (ООП), слайд №59
Описание слайда:

Слайд 60





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

Слайд 61





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

Слайд 62





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

Слайд 63





Отрисовка графика
	
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;

Слайд 64


Объектно-ориентированное программирование (ООП), слайд №64
Описание слайда:



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