Вівторок, 03.12.2024, 19:44
Гость

Мішатронік

Мобільна версія | Додати у вибране  | Мій профіль | Вихід | RSS |
Меню сайту
Наше опитування
Чи знаєте ви, що таке спортивне програмування?
Всього відповідей: 0
Статистика

Онлайн всього: 6
Гостей: 6
Користувачів: 0


Весь реальный мир состоит из объектов. Города состоят из районов, в каждом районе есть свои названия улиц, на каждой улице находятся жилые дома, которые также состоят из объектов.

Практически любой материальный предмет можно представить в виде совокупности объектов, из которых он состоит. Допустим, что нам нужно написать программу для учета успеваемости студентов. Можно представить группу студентов, как класс языка C++. Назовем его Students.

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

Основные понятия

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

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

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

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

 // Имя студента
 std::string name;
 // Фамилия
 std::string last_name;
 // Пять промежуточных оценок студента
 int scores[5];

 private:
 // Итоговая оценка за семестр
 float average_ball;
};

Функция calculate_average_ball() просто делит сумму всех промежуточных оценок на их количество.

Модификаторы доступа public и private

Все свойства и методы классов имеют права доступа. По умолчанию, все содержимое класса является доступным для чтения и записи только для него самого. Для того, чтобы разрешить доступ к данным класса извне, используют модификатор доступа public. Все функции и переменные, которые находятся после модификатора public, становятся доступными из всех частей программы.

Закрытые данные класса размещаются после модификатора доступа private. Если отсутствует модификатор public, то все функции и переменные, по умолчанию являются закрытыми (как в первом примере).

Обычно, приватными делают все свойства класса, а публичными — его методы. Все действия с закрытыми свойствами класса реализуются через его методы. Рассмотрим следующий код.

class Students {
 public:
 // Установка среднего балла
 void set_average_ball(float ball)
 {
 average_ball = ball;
 }
 // Получение среднего балла
 float get_average_ball()
 {
 return average_ball;
 }
 std::string name;
 std::string last_name;
 int scores[5];

 private:
 float average_ball;
};

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

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

 

Форма входа
Пошук
Друзі сайту
Календар
«  Грудень 2024  »
ПнВтСрЧтПтСбНд
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Єдина Країна! Единая Страна!