Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Переменные и операции класса



Обычно для каждого объекта необходима своя копия переменных, описанных в классе. Однако в некоторых ситуациях требуется, чтобы в классе были данные, общие для всех его экземпляров – переменные класса.

Переменная класса в С++ описывается с ключевым словом static, она создается один раз как часть класса, а не для каждого конкретного экземпляра данного класса. Функция, которой требуется доступ к переменным класса, но не требуется, чтобы она вызывалась для конкретного экземпляра класса, также описывается как статическая (static).

Пример. Опишем класс для работы с датами.

class Date{

int day;// день

int month;// месяц

int year;// год

public:

Date (int, int, int); // день, месяц, год

Date (int, int); // день, месяц, текущий год – по умолчанию

Date (int); // день, текущие месяц и год – по умолчанию

Date (); // дата по умолчанию – сегодня

...

};

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

Рассмотрим альтернативное решение. Опишем конструктор с аргументами по умолчанию.

class Date{

int day, month, year;

static Date default_date;

public:

Date (int d=0, int m=0, int y=0);

...

static void set_default(int, int, int);

};

Если значение аргумента является нулевым, следует воспользоваться соответствующим элементом даты, задаваемой по умолчанию – default_date. Поскольку значение default_date должно быть одинаковым для всех объектов класса, данная переменная является статическим членом. Для ее инициализации описана также статическая функция-член set_default. Статические члены – и функции, и данные – должны быть где-то определены. Например,

Date Date:: default_date (1, 1, 2000);

void set_default (int d, int m, int y)

{

Date:: default_date= Date (d, m, y);

}

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





Дата публикования: 2015-04-06; Прочитано: 399 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...