Презентация, доклад на тему Уроки программирования C++. Урок 2. Введение в ООП.

Содержание

Структуры в С++Никитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаСтруктура — это , некое объединение различных переменных (даже с разными типами данных), которому можно присвоить имя.Например можно объединить данные об  объекте Дом:  город (в котором дом находится),

Слайд 1Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++
Введение

в ООП

Никитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++Введение в ООП

Слайд 2Структуры в С++
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Структура — это

, некое объединение различных переменных (даже с разными типами данных), которому можно присвоить имя.
Например можно объединить данные об  объекте Дом:  город (в котором дом находится), улица, количество квартир, интернет(проведен или нет) и т.д.  в одной структуре.  
Структуры в С++Никитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаСтруктура — это , некое объединение различных переменных (даже

Слайд 3Структуры в С++
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
#include
using namespace

std;

struct building //Создаем структуру!
{
char *owner; //здесь будет храниться имя владельца
char *city; //название города
int amountRooms; //количество комнат
float price; //цена
};

int main()
{
setlocale(LC_ALL, "rus");

building apartment1; //это объект структуры с типом данных, именем структуры, building

Структуры в С++Никитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинникова#include using namespace std;struct building   //Создаем структуру!{

Слайд 4Структуры в С++
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
apartment1.owner

= "Денис"; //заполняем данные о владельце и т.д.
apartment1.city = "Симферополь";
apartment1.amountRooms = 5;
apartment1.price = 150000;

cout << "Владелец квартиры: " << apartment1.owner << endl;
cout << "Квартира находится в городе: " << apartment1.city << endl;
cout << "Количество комнат: " << apartment1.amountRooms << endl;
cout << "Стоимость: " << apartment1.price << " $" << endl;

return 0;
}

Структуры в С++Никитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинникова  apartment1.owner =

Слайд 5Классы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Класс — это фундамент, на

котором построена в С++ поддержка объектно-ориентированного программирования, а также ядро многих более сложных программных средств.
Класс — это базовая единица инкапсуляции, которая обеспечивает механизм создания объектов
КлассыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаКласс — это фундамент, на котором построена в С++ поддержка объектно-ориентированного

Слайд 6Классы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
В информатике инкапсуляцией (лат. en

capsula) называется упаковка данных и/или функций в единый компонент.
Инкапсуляция, наследование и полиморфизм (в форме ad hoc полиморфизма или полиморфизма подтипов) являются тремя столпами объектно-ориентированного программирования, реализуя в нём принцип абстракции данных
КлассыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаВ информатике инкапсуляцией (лат. en capsula) называется упаковка данных и/или функций

Слайд 7Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Классы в С++ -

это логическая абстракция описывающая методы, свойства, ещё не существующих объектов.

Класс включает как данные, так и код, предназначенный для выполнения действий над этими данными.
Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаКлассы в С++ - это логическая абстракция описывающая методы, свойства,

Слайд 8Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
В классе данные

объявляются в виде переменных, а код оформляется в виде функций

Функции и переменные, составляющие класс, называются его членами
Переменные – это свойства класса
Функции – это методы класса
Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаВ классе данные объявляются в виде переменных, а код

Слайд 9Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
В ООП существует три основных

принципа построения классов:
Инкапсуляция - это свойство, позволяющее объединить в классе и данные, и методы, работающие с ними и скрыть детали реализации от пользователя.
Наследование - это свойство, позволяющее создать новый класс-потомок на основе уже существующего, при этом все характеристики класса родителя присваиваются классу-потомку.
Никитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаВ ООП существует три основных принципа построения классов:Инкапсуляция - это свойство, позволяющее объединить

Слайд 10Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
В ООП существует три основных

принципа построения классов:
Полиморфизм - свойство классов, позволяющее использовать объекты классов с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.


Никитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаВ ООП существует три основных принципа построения классов:Полиморфизм - свойство классов, позволяющее использовать

Слайд 11Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова

Объекты - конкретное представление

абстракции, имеющее свои свойства и методы.

Созданные объекты на основе одного класса называются экземплярами этого класса.


Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаОбъекты - конкретное представление абстракции, имеющее свои свойства и методы.Созданные

Слайд 12Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Объявление класса начинается

с ключевого слова class
class /*имя класса*/
{
private:
/* список свойств и методов */
public:
/* список свойств и методов */
protected:
/* список свойств и методов */
};

Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаОбъявление класса начинается с ключевого слова class class /*имя

Слайд 13Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Спецификатора доступа private. Все

методы и свойства класса, объявленные после спецификатор будут доступны только внутри класса.
Спецификатор доступа public. Все методы и свойства класса, объявленные после спецификатора доступа  будут доступны другим функциям и объектам в программе.
Спецификатор доступа  protected. Все методы и свойства класса, объявленные после спецификатора будут доступы внутри класса и из производных экземпляров класса. 
Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаСпецификатора доступа private. Все методы и свойства класса, объявленные после

Слайд 14Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова

Следующий класс определяет

тип queue, который предназначен для реализации очереди. (Под очередью понимается список с дисциплиной обслуживания в порядке поступления, т.е. "первым прибыл — первым обслужен".)

Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаСледующий класс определяет тип queue, который предназначен для реализации

Слайд 15Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
class queue {

int q[100];
int sloc, rloc;
public:
void init();
void qput(int i);
int qget();
};

Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаclass queue {  int q[100];  int sloc,

Слайд 16Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Определив класс, можно

создать объект этого "классового" типа, используя имя класса.
Например, при выполнении следующей инструкции создается два объекта Q1 и Q2 типа queue,
 
queue Q1, Q2;
Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаОпределив класс, можно создать объект этого

Слайд 17Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
После создания объект

класса будет иметь собственную копию данных, которые составляют класс.
Это означает, что каждый из объектов Q1 и Q2 будет иметь собственные отдельные копии переменных q, sloc и rloc.
В объявлении класса queue содержатся прототипы методов. Поскольку методы обеспечены своими прототипами в определении класса, их не нужно помещать больше ни в какое другое место программы.

Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаПосле создания объект класса будет иметь собственную копию данных,

Слайд 18Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Реализация функции класса

void

queue::qput(int i)
{
if (sloc == 100) {
cout << "Очередь заполнена.\n";
return;
}
sloc++;
q[sloc] = i;
}

Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаРеализация функции классаvoid queue::qput(int i){  if (sloc ==

Слайд 19Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Реализация функции класса

void

queue::init()
{
rloc = sloc = 0;
}
Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаРеализация функции классаvoid queue::init(){  rloc = sloc =

Слайд 20Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Реализация функции класса

int

queue::qget()
{
if (rloc == sloc) {
cout << "Очередь пуста.\n";
return 0;
}
rloc++;
return q[rloc];
}
Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаРеализация функции классаint queue::qget(){ if (rloc == sloc) {

Слайд 21Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
int main()
{

queue a, b; // Создание двух объектов класса queue.
a.init();
b.init();
a.qput(10);
b.qput(19);
a.qput(20);
b.qput(1);
cout << "Содержимое очереди a: ";
cout << a.qget() << " ";
cout << a.qget() << "\n";
cout << "Содержимое очереди b: ";
cout << b.qget() << " ";
cout << b.qget() << " ";
cout << b.qget() << "\n";
return 0;
}
Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаint main(){  queue a, b; // Создание двух

Слайд 22Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Не забывайте, что

закрытые члены класса доступны только функциям, которые являются членами этого класса. Например, такую инструкцию

a.rloc = 0;

нельзя включить в функцию main() нашей программы.

Как надо изменить класс, чтобы такое обращение стало возможным?

Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаНе забывайте, что закрытые члены класса доступны только функциям,

Слайд 23Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
class queue {

int q[100];
int sloc, rloc;
public:
void init();
void qput(int i);
int qget();
};

Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаclass queue {  int q[100];  int sloc,

Слайд 24Классы и объекты
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
class queue {

int q[100];
int sloc;
public:
int rloc;
void init();
void qput(int i);
int qget();
};

Классы и объектыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаclass queue {  int q[100];  int sloc;

Слайд 25Конструкторы и деструкторы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Конструктор — это

функция, которая вызывается при создании объекта.
Как правило, некоторую часть объекта, прежде чем его можно будет использовать, необходимо инициализировать.
Прежде чем класс queue можно будет использовать, переменным rloc и sloc нужно присвоить нулевые значения.
Конструкторы и деструкторыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаКонструктор — это функция, которая вызывается при создании объекта.Как

Слайд 26Конструкторы и деструкторы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Конструктор — это

специальная функция, которая является членом класса и имя которой совпадает с именем класса.

class queue {
int q[100];
int sloc, rloc;
public:
queue(); // конструктор
void qput(int i);
int qget();
};

Обратите внимание на то, что в объявлении конструктора queue() отсутствует тип возвращаемого значения.

Конструкторы и деструкторыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаКонструктор — это специальная функция, которая является членом класса

Слайд 27Конструкторы и деструкторы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
queue::queue()
{
sloc =

rloc = 0;
cout << "Очередь инициализирована.\n";
}
Конструктор объекта вызывается при создании объекта. Это означает, что он вызывается при выполнении инструкции объявления объекта.
Конструкторы и деструкторыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаqueue::queue(){ sloc = rloc = 0; cout

Слайд 28Конструкторы и деструкторы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
Деструктор — это

функция, которая вызывается при разрушении объекта.
Имя деструктора совпадает с именем конструктора, но предваряется символом "~"
Подобно конструкторам деструкторы не возвращают значений, а следовательно, в их объявлениях отсутствует тип возвращаемого значения.
Конструкторы и деструкторыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.ОвчинниковаДеструктор — это функция, которая вызывается при разрушении объекта.Имя

Слайд 29Конструкторы и деструкторы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
class queue {

int q[100];
int sloc, rloc;
public:
queue(); // конструктор
~queue(); // деструктор
void qput(int i);
int qget();
};
Конструкторы и деструкторыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаclass queue {  int q[100];  int sloc,

Слайд 30Конструкторы и деструкторы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова


queue::~queue()
{
cout

<< "Очередь разрушена.\n";
}

Конструкторы и деструкторыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаqueue::~queue(){  cout

Слайд 31Конструкторы и деструкторы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
class queue {

int q[100];
int sloc, rloc;
public:
queue();
queue(int id);
~queue();
void qput(int i);
int qget();
};

Есть ли ошибки в коде?

Конструкторы и деструкторыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаclass queue {  int q[100];  int sloc,

Слайд 32Конструкторы и деструкторы
Никитин Михаил Евгеньевич, 2013
ГБПОУ ПК имени П.А.Овчинникова
int main()
{

queue a, b(2); // Создание двух объектов класса queue.
a.qput(10);
b.qput(19);
a.qput(20);
b.qput(1);
cout << "Содержимое очереди a: ";
cout << a.qget() << " ";
cout << a.qget() << "\n";
cout << "Содержимое очереди b: ";
cout << b.qget() << " ";
cout << b.qget() << " ";
cout << b.qget() << "\n";
return 0;
}
Конструкторы и деструкторыНикитин Михаил Евгеньевич, 2013ГБПОУ ПК имени П.А.Овчинниковаint main(){  queue a, b(2); // Создание двух

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть