Основи програмування на С ++ для початківців

Классы C

Начиная изучать классы, мы подошли к важному этапу – изучению объектно-ориентированного программирования (ООП) в C++ . Класи – довольно обширная тема. Поэтому я разобью её на несколько частей. Таким образом, початківцям буде досить просто освоїти інформацію і розібратися з основами цієї теми.

В даному уроці ми познайомимося з синтаксисом класів C ++, зі специфікаторами доступу до членів (полям) класса (private і public). Узнаем, що таке методи класу і як звертатися до членів класу з програми.

Классы C похожи на структуры, но обладают своими особенностями и преимуществами. До этого в программах мы определяли структуры и функции отдельно. В классах они объединены в одно целое, чтобы к закрытым данным класса могли обращаться только функции этого класса. Мені сподобалася ілюстрація з книги Об'єктно-орієнтоване програмування в С ++” Р. Лафореткласи c ++, класи з ++ для початківців, специфікатор доступу privat і public, методы класса

У наших перших уроках про ООП ми будемо розглядати прості для розуміння класи. Сложные примеры будут только отвлекать от важных деталей, які стосуються визначення класів і об'єктів. У заключному уроці про класи ми підсумуємо все вивчене і відповімо на питання – зачем нужны классы и в чём заключаются основные принципы ООП.

Сейчас напишем и разберём следующий код:

У рядках 4 – 19 находится определение класса. Щоб оголосити клас треба використовувати ключове слово class и дать ему имя. В фигурных скобках описать его и, в конце поставить ;  крапку з комою.

класи c ++, класи з ++ для початківців, специфікатор доступу privat і public, методы класса

После объявления имени класса, оно становится именем нового типа данных. С этим типом будут создаваться объекты класса.

В теле класса (между фигурными скобками) могут находиться данные (змінні базових типів і рядки ), функции, принадлежащие классу, структуры, классы…  Все це частіше називають членами або полями класу.  Функции, которые объявлены и/или определены в теле класса – это методы класса. Далее так их и будем называть. Просто надо запомнить: методы класса – это функции, спеціально створені для роботи з даними (членами) этого класса.

Рассмотрим новые для вас ключевые слова – private і public. В С ++ прийнято захищати деякі дані класу від зовнішнього втручання. Тобто, чтобы из главной функции, например, никто не мог напрямую обратиться к этим данным через объект и внести какие-либо изменения.

класи c ++, класи з ++ для початківців, специфікатор доступу privat і public, методы класса
Попытка обращения к закрытому члену класса из main-функции

Чтобы сделать данные “закрытыми” надо разместить их в поле private . По умолчанию, всё что объявлено в классе, становится закрытым от прямого доступа и доступно только для других членов или методов класса. Так что, если такие данные объявляются в самом верху тела класса, слово private   можна не використовувати.

Щоб оголосити відкриті члени класу, надо применить ключевое слово public.  У цьому полі часто знаходяться методи класу, которые и будут работать с приватными (закрытыми) данными. Публичные (открытые) методы и другие члены класса доступны из любой другой части кода/программы, в якій визначено клас. Іноді для роботи вам можливо знадобиться оголосити публічний член класу або приватний метод.

Обратите внимание на определение методов класса. Мы не передаем в них параметры. При цьому вносимо зміну в зміннуnumber і показуємо її на екран. Справа в тому, що члени і методи класу знаходяться в одній області видимості. И методы класса свободно обращаются к данным-членам класса.

В нашем коде мы разместили определение методов прямо в теле класса, так як визначення займає дуже мало місця. Но чаще придётся выносить его за пределы тела класса или даже в другой файл, а в самом классе оставлять только прототипы методов. Посмотрите, как выглядит определение методов вне класса:

Чтобы указать, что функция, определенная вне класса, является именно его методом, надо как-то связать имя класса с именем этого метода. Для этого пишем сначала тип возвращаемого значения, затем имя класса, далі операцію розширення області видимості ::  (двойное двоеточие), имя метода и скобки (с параметрами или без):  void номер::setNumber()  потім, как обычно, следует определение тела функции в фигурных скобках.

Методы, певні в класі, за замовчуванням єinline-функціями (встроенными функциями) в отличии от методов, определённых вне класса.

Так как класс – это некий тип, определённый программистом, то створивши клас ми можемо створювати об'єкти цього типу:  номер об'єкт; Як ми обговорили раніше, мы не сможем обратиться к приватным членам класса из главной функции. Но мы легко можем с ними работать, через определённые методы класса. Так викликаємо ці методи через об'єкт і спочатку присвоюємо змінноїnumber значение, а затем показываем на экран.

класи c ++, класи з ++ для початківців, специфікатор доступу privat і public, методы класса

Для первого вводного урока, информации будет достаточно. Наступний урок буде містити завдання на класи, для того, чтобы вы могли закрепить полученные знания. Задание для вас – до переходу до вирішення завдань, посмотреть видео-урок.

4 думки про "Классы C

  1. Десь (або тут в описах класів, або раніше, в описах структур) потрібно б сказати, що структури, успадкування dostavshiesya C ++, ніж C, і класи – це одне і теж.
    Тільки за замовчуванням для всіх членів структури область видимості визначена як public, а в класах – як private. Тому ми в класах завжди переобумовленої видимість якихось членв (public, захищений) – знизу вгору, від меншого (private) до більшого (public, захищений). А в структурах в цьому просто не виникає необхідність – зверху вниз.
    Але структури C ++, на відміну від структур C, через таку дуальності (з класами) можуть також мати свої власні функції-методи.

  2. на відео уроці, може кому-то буде корисно , не всі компілятори розумні , як у Дениса Маркова. У мене наприклад потрібно було додавати покажчик this-> щоб аварійної ситуації не було . Ще дуже мало завдань за темами, у вас на початку так добре все було, отримав інформацію-отримай і завдання по ній: а зараз вивчи і зрозумій купа інформації(не легкою)а потім вже переходь до задачі.
    #include
    #include

    using namespace std;
    ЬурейеЕ непідписаних Int ш;

    клас accaunt
    {
    private:
    символ * ID;
    символ * Ім'я;
    щ баланс;
    public:
    accaunt(void);
    недійсним SETID(char*);
    char * GetId();
    недійсний SetName(char*);
    символ * GetName();
    ~ accaunt(void);
    цибуля getbalance();
    недійсний setbalance(щ);
    };
    accaunt::accaunt()
    {
    }
    accaunt::~ accaunt()
    {
    }
    недійсним accaunt::SETID(символ * ідентифікатор)
    {
    this->ID = ідентифікатор;
    };
    char * accaunt::GetId()
    {
    повернення ID;
    }
    недійсним accaunt::SetName(символ * Ім'я)
    {
    this->Name = Ім'я;
    }
    char * accaunt::GetName()
    {
    повернення Ім'я;

    }
    хто accaunt::getbalance()
    {
    повернення балансу;
    }
    недійсним accaunt::setbalance(б щ)
    {
    this->Баланс = Ь;
    }

    int main()
    {
    setlocale(LC_ALL, “rus”);
    accaunt;
    a.setbalance(123);
    a.setid(“444”);
    a.setname(“Де”);

    cout << a.getbalance() << endl;

    cout << a.getname() << endl;

    cout << a.getid() << endl;
    cin.get();

    return 0;
    }

  3. Вилучення 57 356 $. Перейти до зняття > https://forms.yandex.com/cloud/65e6f69bf47e7306ad1bf0da?hs=d1a64614ffe22ed5ce0f7946c54330d2& говорить:

    7f835p

Залишити коментар до Olej Скасувати відповідь

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *