Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_02_КЛАССЫ.doc
Скачиваний:
1
Добавлен:
10.11.2019
Размер:
80.9 Кб
Скачать

Лекция №2 классы. Синтаксис объявления класса

Понятие класса является наиболее важным в языке C++. Синтаксис объявления класса похож на синтаксис описания структуры. Вот его основная форма:

class <имя_класса>

{

privat:

<закрытые_элементы_класса>

protected:

<защищённые_элементы_класса>

public:

<открытые_элементы_класса>

}<список_объектов> ;

где

<имя_класса> необязательно, хотя его обычно указывают. <имя_класса> становится новым именем типа данных, которое используется для объявления объектов этого класса;

<список_объектов> необязательный, объявить объекты класса можно позже, по мере необходимости.

Функции и переменные, объявленные внутри объявления класса, становятся членами этого класса:

  • переменные, объявленные внутри объявления класса, называются данными-членами этого класса;

  • функции, объявленные внутри объявления класса, называются функциями-членами этого класса.

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

Примеры объявления класса

Пример 1. Объявим класс, который содержит закрытое данное-член класса x и две открытые функции-члены класса для изменения и получения данного-члена класса x.

class AnyClass

{

int x; // закрытое данное-член класса

public: // открытые члены класса

int GetX(); // функция возвращает значение данного-члена класса x

void SetX(int X); // функция изменяет значение данного-члена класса x

};

Обратите внимание на объявление функции-члена void SetX(int X); Параметр функции X отличен от данного-члена класса x, поскольку компилятор C++ различает прописные и строчные буквы. Использование в списке параметров идентификаторов, совпадающих с данными-членами, усложнит код вашей программы и затруднит её чтение.

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

Пример 2.

class date // дата

{

int month, day, year; // поля: месяц, день, год

public:

void set(int,int,int); // метод – установить дату

void get(int*,int*,int*); // метод – получить дату

void next(); // метод – установить следующую дату

void print(); // метод – вывести дату

};

Пример 3.

class complex // класс комплексных чисел

{

double re, im; // private по умолчанию

public:

double real();

double imag();

void set(double x, double y);

void print();

};

Данный класс содержит объявление собственных данных-членов re, im, обозначающих соответственно действительную и мнимую части комплексного числа и объявление общедоступных функций-членов real(), imag(), set(double x,double y), print(). Эти функции объявлены в классе, но они не определены. Для определения функции-члена нужно связать имя класса с именем функции.