Классы C

Классы C
5 (100%) 1 голосування




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

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

Классы C похожи на структуры, но обладают своими особенностями и преимуществами. До этого в программах мы определяли структуры и функции отдельно. В классах они объединены в одно целое, чтобы к закрытым данным класса могли обращаться только функции этого класса. Мені сподобалася ілюстрація з книги

& Quot; Об'єктно-орієнтоване програмування в С ++" Р. Лафорет (купити з доставкою поштою) “Объектно-ориентированное программирование в С ” Р. Лафорет (купити з доставкою поштою)

класи 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, методы класса

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

Щоб підтримати наш сайт – натисніть на скарбничку і виберіть будь-який зручний спосіб.

Нові уроки з програмування:

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

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

залишити коментар

Код розміщуйте в тегах: <pre class="lang:C ++ декодуванням:true ">ВАШ КОД</заздалегідь>