Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Статические функции

Размещение в памяти членов объектов одного класса и способ создания общих полей (св-в). | Константные методы, их аргументы и константные объекты. | Строки на основе массива типа char и класса string | Перегрузка бинарных операций | Преобразование типов от основного к пользовательскому. | Предотвращение преобразования типов от основного к пользовательскому с помощью конструктора | Базовый и производный классы. Конструкторы производного класса. Перегрузка методов при наследовании. Алгоритм выбора перегруженного метода. | Указатели. Инициализация. Арифметические операции. | Управление памятью. Операции new и delete. Указатель this. | Виртуальные функции. |


Читайте также:
  1. Defining functions Определение функции
  2. II. Основные цели, задачи и функции Центра
  3. II. Основные цели, задачи и функции Центра
  4. II. Функции тахографа и требования к его конструкции
  5. III. Функции ФСБ России
  6. Lt;question>Укажите функции научного стиля?
  7. А). Функции и понятия

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

Рассмотрим программу:

class gamma

{ private:

static int total; //всего объектов класса (только объявление)

int id; //ID текущего объекта

public:

gamma() //конструктор без аргументов

{ total++; id = total; } //id равен текущему значению total

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

{ total--; cout << "Удаление ID " << id << endl; }

static void showtotal() // статическая функция

{ cout << "Всего: " << total << endl; }

void showid() // Нестатическая функция

{ cout << "ID: " << id << endl; }

};

//---------------------------------------------------------

int gamma::total = 0; // определение total

///////////////////////////////////////////////////////////

int main()

{

gamma g1;

gamma::showtotal();

gamma g2, g3;

gamma::showtotal();

g1.showid();

g2.showid();

g3.showid();

cout << "----------конец программы----------\n";

return 0;

}

К статической ф-ии можно иметь доступ через имя класса.

Три объекта, которые были созданы в процессе работы, должны быть удалены до ее завершения, чтобы восстановился доступ к памяти. Об этом заботится компилятор, выполняя деструктор.

 


Дата добавления: 2015-08-17; просмотров: 40 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Дружественные функции.| Блок-схемы алгоритмов (линейные структуры, разветвленные структуры, циклические структуры)

mybiblioteka.su - 2015-2024 год. (0.006 сек.)