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

Lect04

.pdf
Скачиваний:
5
Добавлен:
06.02.2016
Размер:
434.07 Кб
Скачать

Статическиечленыкласса

Статическиеатрибутыдолжныбыть обязательноинициализированыв глобальномпространствеимён!

Инициализациястатическихатрибутов производитсябезучетаправдоступак ним.

Пример:класс,подсчитывающий количествосвоихобъектов

#include "stdafx.h" #include <iostream> using namespace std;

class AppLogger { private:

static unsigned count; public:

AppLogger() { count++; } ~AppLogger() { count--; }

static unsigned GetCount() { return count; }

};

unsigned AppLogger::count = 0;

Пример:класс,подсчитывающий

количествосвоихобъектов

int _tmain(int argc, _TCHAR* argv[]) {

cout << "Starting count=" << AppLogger::GetCount() << endl;

AppLogger a;

cout << "After 'a' count=" << a.GetCount() << endl;

AppLogger *b = new AppLogger();

cout << "After 'b' count=" << a.GetCount() << endl;

cout << "a.count=" << a.GetCount() << " b.count=" << b->GetCount()

<< " AppLogger::count="

<< AppLogger::GetCount() << endl;

Пример:класс,подсчитывающий количествосвоихобъектов

delete b;

cout << "after delete count="

<< AppLogger::GetCount() << endl; cin.ignore();

return 0;

}

Starting count=0 After 'a' count=1 After 'b' count=2

a.count=2 b.count=2 AppLogger::count=2 after delete count=1

Спасибозавнимание!

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]