Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

c++ / Класс

.doc
Скачиваний:
103
Добавлен:
02.04.2015
Размер:
28.67 Кб
Скачать

Класс

  • Класс -тип данных, определяемых пользователем

  • Класс включает как данные, так и код, предназначенный для выполнения действий над этими данными

  • Простые классы могут содержать только код или только данные

  • По умолчанию члены класса являются закрытыми (private-членами), поэтому ключевое private может отсутствовать

  • Ключевое слово public используется для объявления открытых членов класса, доступных для других частей программы

  • Доступ к закрытым членам класса организуется через его открытые функции

  • Конструктор – это специальная функция, которая является членом класса и имя которой совпадает с именем класса. Конструктор объекта вызывается при создании объекта, т. е. при выполнении инструкции объявления объекта. Выполняет функцию инициализации объекта

  • Деструктор – это функция, которая вызывается при разрушении объекта

Объявление класса в общем виде

сlass имя_класса{

private:

приватные данные и функции;

protected:

защищенные данные и функции;

 public:

общие данные и функции

}список объектов; // как и в определении структуры может отсутствовать

Пример: очередь

class queue {

int q[100]; приватная часть

int sloc, rloc;

public:

queue( ); // конструктор

~queue( ); // деструктор

void qput(int i);// присвоение значений закрытым членам класса

int qget( );//чтение значений закрытых членов класса

}; // завершение описания класса

// определение конструктора

queue::queue( ) // :: оператор разрешения области видимости (scope

// resolution).Определяет, к какому классу принадлежит ф-ия

{

sloc=rloc=0;

cout << “Очередь инициализирована \n”;

}

queue::~queue( ) // описание деструктора

{

cout << “Очередь разрушена\n”;

}

// занесение в очередь целочисленного значения

void queue::qput(int i)

{

if (sloc= =100)

{

cout << “Очередь заполнена \n”;

return;

}

sloc++;

q[sloc]=i; // обращение к закрытым данным

}

int queue::qget( )

{

if (sloc==rloc)

{

cout <<”Очередь пуста”;

return 0; // Обязательно надо вернуть какое-то значение, т.к. описана

// ф-ия, возвращающая целое

}

return q[rloc++];

}

main( )

{

queue a,b; // создание объектов класса queue

a.qput(10);

b.qput(19);

a.qput(20);

b.qput(1);

cout <<a.qget( )<< “ “;

cout <<a.qget( )<< “ “;

cout <<b.qget( )<< “ “;

cout <<b.qget( )<< “\n “;

return 0;

}

Протокол программы

Очередь инициализирована // сообщения конструкторов

Очередь инициализирована //

10 20 19 1

Очередь разрушена // сообщения деструкторов

Очередь разрушена //

Соседние файлы в папке c++