Разделы презентаций


Классы С++

Содержание

Классы и объекты в С++ являются основными концепциями объектно-ориентированного программирования — ООП.  Объектно-ориентированное программирование — расширение структурного программирования, в котором основными концепциями являются понятия классов и объектов. Основное отличие языка программирования

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

Слайд 1Классы С++
Воронова С.А.

Классы С++Воронова С.А.

Слайд 3Классы и объекты в С++ являются основными концепциями объектно-ориентированного программирования

— ООП. 
Объектно-ориентированное программирование — расширение структурного программирования, в котором

основными концепциями являются понятия классов и объектов.
Основное отличие языка программирования С++ от С состоит в том, что в С нет классов, а следовательно язык С не поддерживает ООП, в отличие от С++.
Классы и объекты в С++ являются основными концепциями объектно-ориентированного программирования — ООП.  Объектно-ориентированное программирование — расширение структурного

Слайд 4Определение класса
Классы — это некоторые описания, схемы, чертежи по которым

создаются объекты.

Определение классаКлассы — это некоторые описания, схемы, чертежи по которым создаются объекты.

Слайд 5Классы имеют свои функции, которые называются методами класса.
Передвижение велосипеда

осуществляется за счёт вращения педалей, если рассматривать велосипед с точки

зрения ООП, то механизм вращения педалей — это метод класса.
Классы имеют свои функции, которые называются методами класса. Передвижение велосипеда осуществляется за счёт вращения педалей, если рассматривать

Слайд 6Каждый велосипед имеет свой цвет, вес, различные составляющие — всё

это свойства. Причём у каждого созданного объекта свойства могут различаться.

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

Слайд 7Классы в С++
Классы в С++ — это абстракция описывающая методы, свойства,

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

и методы. Созданные объекты на основе одного класса называются экземплярами этого класса. Эти объекты могут иметь различное поведение, свойства, но все равно будут являться объектами одного класса.
Классы в С++Классы в С++ — это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты — конкретное представление абстракции,

Слайд 8Структура объявления классов
// объявление классов в С++
class /*имя класса*/
{
  private:
  /* список

свойств и методов для использования внутри класса */
  public:
  /* список методов

доступных другим функциям и объектам программы */
  protected:
  /*список средств, доступных при наследовании*/
};
Структура объявления классов// объявление классов в С++class /*имя класса*/{  private:  /* список свойств и методов для использования внутри класса

Слайд 9Пример программы
// classes.cpp: определяет точку входа для консольного приложения.
 
#include
using

namespace std;
// начало объявления класса
class CppStudio // имя класса
{
public: // спецификатор доступа
    void

message() // функция (метод класса) выводящая сообщение на экран
   
Пример программы// classes.cpp: определяет точку входа для консольного приложения. #include using namespace std;// начало объявления классаclass CppStudio // имя

Слайд 10Продолжение программы
 {
        cout

+\n";
    }
}; // конец объявления класса CppStudio
 int main(int argc, char* argv[])
{
    CppStudio objMessage; // объявление

объекта
    objMessage.message(); // вызов функции класса message
    system("pause");
    return 0;
}
Продолжение программы {        cout

Слайд 11Результат выполнения программы:

Результат выполнения программы:

Слайд 12SET и GET — функции классов
Атрибуты объекта хранятся в переменных,

объявленных внутри класса, которому принадлежит данный объект. Причём, объявление переменных

должно выполняться со спецификатором доступа private. Такие переменные называются элементами данных. 
set и get функции позволяют манипулировать элементами данных
SET и GET — функции классовАтрибуты объекта хранятся в переменных, объявленных внутри класса, которому принадлежит данный объект.

Слайд 13SET и GET — функции классов
set-функции инициализируют элементы данных, get-функции позволяют просмотреть значения

элементов данных.

Доработаем класс  CppStudio так, чтобы в нём можно было хранить дату в

формате дд.мм.гг. Для изменения и просмотра даты реализуем соответственно set и get функции.
SET и GET — функции классовset-функции инициализируют элементы данных, get-функции позволяют просмотреть значения элементов данных.Доработаем класс  CppStudio так, чтобы в нём можно было

Слайд 14Пример класса  CppStudio
// classes.cpp: определяет точку входа для консольного приложения.
#include
using

namespace std;
 
class CppStudio // имя класса
{
private: // спецификатор доступа private
    int day, // день
        month, //

месяц
        year; // год
public: // спецификатор доступа public
    void message() // функция (метод класса) выводящая сообщение на экран
Пример класса  CppStudio// classes.cpp: определяет точку входа для консольного приложения.#include using namespace std; class CppStudio // имя класса{private: // спецификатор доступа

Слайд 15Пример класса  CppStudio
{
        cout

+\n";
    }
    void setDate(int date_day, int date_month, int date_year) // установка даты в формате дд.мм.гг
    {
        day  

= date_day; // инициализация день
        month = date_month; // инициализация месяц
        year  = date_year; // инициализация год
    }
Пример класса  CppStudio{        cout

Слайд 16Пример класса  CppStudio
void getDate() // отобразить текущую дату
{
        cout

класса CppStudio
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus"); // установка локали

Пример класса  CppStudiovoid getDate() // отобразить текущую дату{        cout

Слайд 17Пример класса  CppStudio
int day, month, year;
    cout

год!\n";
    cout day;
    cout

month;
    cout << "год: ";  cin >> year;
    CppStudio objCppstudio; // объявление объекта
    objCppstudio.message(); // вызов функции класса message
    objCppstudio.setDate(day, month, year); // инициализация даты
    objCppstudio.getDate(); // отобразить дату
    system("pause");
    return 0;
}
Пример класса  CppStudioint day, month, year;    cout

Слайд 18Результат выполнения программы:

Результат выполнения программы:

Слайд 19Конструктор
Конструктор — специальная функция, которая выполняет начальную инициализацию элементов данных, причём

имя конструктора обязательно должно совпадать с именем класса. Важным отличием

конструктора от остальных функций является то, что он не возвращает значений вообще никаких, в том числе и void.
В любом классе должен быть конструктор, даже если явным образом конструктор не объявлен, то компилятор предоставляет конструктор по умолчанию, без параметров.
КонструкторКонструктор — специальная функция, которая выполняет начальную инициализацию элементов данных, причём имя конструктора обязательно должно совпадать с именем

Слайд 20Доработанная программа
// classes.cpp: определяет точку входа для консольного приложения.
 #include
using

namespace std;
class CppStudio // имя класса
{
private: // спецификатор доступа private
    int day, // день
        month, //

месяц
        year; // год
public: // спецификатор доступа public
    // конструктор класса
CppStudio(int date_day, int date_month, int date_year ) 
Доработанная программа// classes.cpp: определяет точку входа для консольного приложения. #include using namespace std;class CppStudio // имя класса{private: // спецификатор доступа

Слайд 21Доработанная программа
{
// вызов функции установки даты        
 setDate(date_day, date_month, date_year); 
    }
// функция

(метод класса) выводящая сообщение на экран    
 void message() 
    {
        cout

Classes and Objects in C + +\n";
    }
// установка даты в формате дд.мм.гг     
void setDate(int date_day, int date_month, int date_year) 

 
Доработанная программа{// вызов функции установки даты         setDate(date_day, date_month, date_year);     }// функция (метод класса) выводящая сообщение на экран     void

Слайд 22Доработанная программа
{
        day   = date_day; // инициализация день
        month = date_month; // инициализация месяц
        year 

= date_year; // инициализация год
    }
    void getDate() // отобразить текущую дату
    {
        cout

<< day << "." << month << "." << year << endl;  
}


 
Доработанная программа{        day   = date_day; // инициализация день        month = date_month; // инициализация месяц        year  = date_year; // инициализация год    }    void getDate() // отобразить текущую

Слайд 23Доработанная программа
int main(int argc, char* argv[])
{
    CppStudio objCppstudio(11,11,2011); // объявление объекта и инициализация

элементов данных
    objCppstudio.message(); // вызов функции message
    objCppstudio.getDate(); // отобразить дату
    system("pause");
    return 0;
}
}; // конец объявления

класса CppStudio

 
Доработанная программаint main(int argc, char* argv[]){    CppStudio objCppstudio(11,11,2011); // объявление объекта и инициализация элементов данных    objCppstudio.message(); // вызов функции message    objCppstudio.getDate(); // отобразить дату    system(

Слайд 24Объявление класса в отдельном файле
Чтобы воспользоваться ранее разработанным классом, необходимо

подключить файл, в котором он объявлен. Подключение файлов выполняется с

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

Слайд 25Объявление класса в отдельном файле
Для этого необходимо выполнить 3 шага:
добавить

в проект заголовочный файл *.h;
в заголовочном файле объявить пользовательский класс,
в

нашем случае — CppStudio;
3. подключить заголовочный файл к программе, в нашем случае — #include "CppStudio.h" 
Объявление класса в отдельном файлеДля этого необходимо выполнить 3 шага:добавить в проект заголовочный файл *.h;в заголовочном файле объявить

Слайд 26написать программу для учета успеваемости студенто
ПРИМЕР

написать программу для учета успеваемости студентоПРИМЕР

Слайд 27Основные понятия
Объект класса: студент
Свойства: имя, фамилия, оценки и средний балл.

 

У каждого студента есть имя — name и фамилия last_name . Также, у него

есть промежуточные оценки за весь семестр. Эти оценки мы будем записывать в целочисленный массив из пяти элементов. После того, как все пять оценок будут проставлены, определим средний балл успеваемости студента за весь семестр — свойство average_ball.
Основные понятияОбъект класса: студентСвойства: имя, фамилия, оценки и средний балл.  У каждого студента есть имя — name и фамилия last_name .

Слайд 28Основные понятия
Методы — это функции, которые могут выполнять какие-либо действия над

данными (свойствами) класса. Добавим в наш класс функцию calculate_average_ball(), которая будет

определять средний балл успеваемости ученика.
Методы класса — это его функции.
Свойства класса — его переменные.
Основные понятияМетоды — это функции, которые могут выполнять какие-либо действия над данными (свойствами) класса. Добавим в наш класс

Слайд 29Программа учета успеваемости
class Students {
public:

// Функция, считающая средний балл
void calculate_average_ball()

{
int sum = 0; // Сумма всех оценок
for (int i = 0; i < 5; ++i) {
sum += scores[i];
}
Программа учета успеваемостиclass Students {  public:    // Функция, считающая средний балл

Слайд 30Программа учета успеваемости
// считаем среднее арифметическое

average_ball = sum / 5.0;
}
 

std::string name; // Имя студента
std::string last_name; // Фамилия
// Пять промежуточных оценок студента
int scores[5];
  private:
float average_ball; // Итоговая оценка за семестр
};
Программа учета успеваемости// считаем среднее арифметическое      average_ball = sum / 5.0;

Слайд 31Модификаторы доступа public и private
Закрытые данные класса размещаются после модификатора

доступа private. Если отсутствует модификатор public, то все функции и переменные, по

умолчанию являются закрытыми.
Обычно, приватными делают все свойства класса, а публичными — его методы.
Все действия с закрытыми свойствами класса реализуются через его методы.
Модификаторы доступа public и privateЗакрытые данные класса размещаются после модификатора доступа private. Если отсутствует модификатор public, то все функции

Слайд 32Модификаторы доступа public и private
class Students {
public:

// Установка среднего балла
void

set_average_ball(float ball)
{
average_ball = ball;
}
// Получение среднего балла
float get_average_ball()

Модификаторы доступа public и privateclass Students {  public:    // Установка среднего балла

Слайд 33Модификаторы доступа public и private
{

return average_ball;
}
std::string

name;
std::string last_name;
int scores[5];
 
private:
float average_ball;
};
Модификаторы доступа public и private{      return average_ball;    }

Слайд 34Модификаторы доступа public и private
Напрямую нельзя обращаться к закрытым данными

класса. Работать с этими данными можно только посредством методов этого

класса.
Функция get_average_ball() для получения средней оценки студента, и set_average_ball() для выставления этой оценки.
Модификаторы доступа public и privateНапрямую нельзя обращаться к закрытым данными класса. Работать с этими данными можно только

Слайд 35Модификаторы доступа public и private
Функция set_average_ball() принимает средний балл в качестве параметра

и присваивает его значение закрытой переменной average_ball. Функция get_average_ball() просто возвращает значение этой

переменной.
Модификаторы доступа public и privateФункция set_average_ball() принимает средний балл в качестве параметра и присваивает его значение закрытой переменной average_ball. Функция get_average_ball() просто

Слайд 36Программа учета успеваемости студентов
1) Создается заголовочный файл students.h, в котором будет

находиться класс Students.
/* students.h */
#include
 
class Students {
public:

// Установка имени студента
void set_name(std::string student_name)
Программа учета успеваемости студентов1) Создается заголовочный файл students.h, в котором будет находиться класс Students./* students.h */#include  class Students {

Слайд 37Программа учета успеваемости студентов
{ name

= student_name;
}
//

Получение имени студента
std::string get_name()
{
return name;
}
// Установка фамилии студента
void set_last_name(std::string student_last_name)
Программа учета успеваемости студентов{      name = student_name;    }

Слайд 38Программа учета успеваемости студентов
{ last_name

= student_last_name;
}
//

Получение фамилии студента
std::string get_last_name()
{
return last_name;
}
// Установка промежуточных оценок
void set_scores(int student_scores[])
Программа учета успеваемости студентов{      last_name = student_last_name;    }

Слайд 39Программа учета успеваемости студентов
{ for

(int i = 0; i < 5; ++i) {

scores[i] = student_scores[i];
}
}
// Установка среднего балла
void set_average_ball(float ball)
{
average_ball = ball;
}
Программа учета успеваемости студентов{      for (int i = 0; i < 5;

Слайд 40Программа учета успеваемости студентов
// Получение среднего балла

float get_average_ball()
{

return average_ball;
}
Программа учета успеваемости студентов// Получение среднего балла    float get_average_ball()    {

Слайд 41Программа учета успеваемости студентов
private:
// Промежуточные оценки

int scores[5];
// Средний

балл
float average_ball;
// Имя
std::string name;
// Фамилия
std::string last_name;
};
Программа учета успеваемости студентовprivate:    // Промежуточные оценки    int scores[5];

Слайд 42Программа учета успеваемости студентов
В класс добавлены новые методы, а также

сделаны приватными все его свойства. Функция set_name() сохраняет имя студента в переменной name,

а get_name() возвращает значение этой переменной. Принцип работы функций set_last_name() и get_last_name() 
аналогичен.
Функция set_scores() принимает массив с промежуточными оценками и сохраняет их в приватную переменную int scores[5].
Программа учета успеваемости студентовВ класс добавлены новые методы, а также сделаны приватными все его свойства. Функция set_name() сохраняет имя

Слайд 43Программа учета успеваемости студентов
Теперь создется файл main.cpp со следующим содержимым.
/* main.cpp */
#include


#include "students.h"
 int main()
{
// Создание объекта класса Student

Students student;
Программа учета успеваемости студентовТеперь создется файл main.cpp со следующим содержимым./* main.cpp */#include #include

Слайд 44Программа учета успеваемости студентов
std::string name;
std::string last_name;
 

// Ввод имени с клавиатуры
std::cout

";
getline(std::cin, name);
 
// Ввод фамилии
std::cout << "Last name: ";
getline(std::cin, last_name);
Программа учета успеваемости студентов  std::string name;  std::string last_name;   // Ввод имени с клавиатуры

Слайд 45Программа учета успеваемости студентов
// Сохранение имени и фамилии

в объект класса Students
student.set_name(name);
student.set_last_name(last_name);
 
//

Оценки
int scores[5];
// Сумма всех оценок
int sum = 0;
Программа учета успеваемости студентов  // Сохранение имени и фамилии в объект класса Students  student.set_name(name);

Слайд 46Программа учета успеваемости студентов
// Ввод промежуточных оценок


for (int i = 0; i < 5;

++i) {
std::cout << "Score " << i+1 << ": ";
std::cin >> scores[i];
// суммирование
sum += scores[i];
}
Программа учета успеваемости студентов   // Ввод промежуточных оценок   for (int i = 0;

Слайд 47Программа учета успеваемости студентов
// Сохраняем промежуточные оценки

в объект класса Student
student.set_scores(scores);
// Считаем средний

балл
float average_ball = sum / 5.0;
// Сохраняем средний балл в объект класса Students
student.set_average_ball(average_ball);
Программа учета успеваемости студентов   // Сохраняем промежуточные оценки в объект класса Student  student.set_scores(scores);

Слайд 48Программа учета успеваемости студентов
// Выводим данные по

студенту
std::cout

<< " "
<< student.get_last_name() << " is "
<< student.get_average_ball() << std::endl;
 
return 0;
}
Программа учета успеваемости студентов   // Выводим данные по студенту  std::cout

Слайд 49Программа учета успеваемости студентов
В самом начале программы создается объект класса Students.

Класс Students является описанием любого из студентов, у которого есть имя, фамилия

и возможность получения оценок.
Объект класса Students характеризует конкретного студента. Если мы захотим выставить оценки всем ученикам в группе, то будем создавать новый объект для каждого из них.
Программа учета успеваемости студентовВ самом начале программы создается объект класса Students. Класс Students является описанием любого из студентов, у которого

Слайд 50Программа учета успеваемости студентов
После создания объекта student, мы вводим с клавиатуры

фамилию, имя и промежуточные оценки для конкретного ученика.
Введенные данные мы

передаем set-функциям, которые присваивают их закрытым переменным класса. После того, как были введены промежуточные оценки, мы высчитываем средний балл на основе этих оценок, а затем сохраняем это значение в закрытом свойстве average_ball, с помощью функции set_average_ball().
Программа учета успеваемости студентовПосле создания объекта student, мы вводим с клавиатуры фамилию, имя и промежуточные оценки для конкретного

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

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

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

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


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

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