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

Размещение в памяти членов объектов одного класса и способ создания общих полей (св-в).

Типы данных. Преобразования типов. | Циклы и ветвления | Синтаксис определения структуры, структурной переменной. Доступ к полям структуры, присвоение структурных переменных. | Синтаксис определения, инициализация указателя на структуру. Работа с полями структуры через указатели. | Определение функции. Передача аргументов и возврат значения по значению, ссылке и указателю. Аргументы по умолчанию. Константы аргументов функции. | Перегруженные функции. Встроенные функции. Рекурсивные функции. | Область видимости и класс памяти. | Объявление и инициализация одномерного и двумерного массивов. Работа с элементами массива через указатель. | Принципы ООП. Инкапсуляция. Наследование. Полиморфизм. | Конструкторы и деструкторы. Конструкторы копирования по умолчанию. |


Читайте также:
  1. A) Заявление подано недееспособным лицом.
  2. H) Глубокая терапия, направленная на восстановление способности переживать фундаментальную ценность, процесс переживания грусти как главное условие терапии депрессии.
  3. I. ЗАДАЧИ ПАРТИИ В ОБЛАСТИ ЭКОНОМИЧЕСКОГО СТРОИТЕЛЬСТВА, СОЗДАНИЯ И РАЗВИТИЯ МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЙ БАЗЫ КОММУНИЗМА
  4. I. Характеристика состояния сферы создания и использования информационных и телекоммуникационных технологий в Российской Федерации, прогноз ее развития и основные проблемы
  5. II Приспособление
  6. II. ИССЛЕДОВАНИЕ РАЗВИТИЯ ПАМЯТИ
  7. II. ПУСК КОТЛА ИЗ ХОЛОДНОГО СОСТОЯНИЯ.

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

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

Поле класса также можно сделать единым для всех объектов данного класса, описав его при определении класса с ключевым словом static. Если поле данных класса описано с ключевым словом static, то значение этого поля будет одинаковым для всех объектов данного класса. Статические данные класса полезны в тех случаях, когда необходимо, чтобы все объекты включали в себя какое-либо одинаковое значение. Статическое поле по своим характеристикам схоже со статической переменной: оно видимо только внутри класса, но время его жизни совпадает со временем жизни программы. Таким образом, статическое поле существует даже в том случае, когда не существует ни одного объекта класса.

Пример иллюстрирует простое применение статического поля класса (здесь это счётчик созданных объектов):

class foo

{

private:

static int count; // общее поле для всех объектов

// (в смысле "объявления")

public:

foo() // инкрементирование при создании объекта

{ count++; }

int getcount() // возвращает значение count

{ return count; }

};

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

int foo::count = 0; // *определение* count

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

int main()

{

foo f1, f2, f3; // создание трех объектов

// каждый объект видит одно и то же значение

cout << "Число объектов: " << f1.getcount() << endl;

cout << "Число объектов: " << f2.getcount() << endl;

cout << "Число объектов: " << f3.getcount() << endl;

return 0;

}

Если не статическая, то

Определение статических полей класса происходит не так, как для обычных полей. Обычные поля объявляются (компилятору сообщается имя и тип поля) и определяются (компилятор выделяет память для хранения поля) при помощи одного оператора. Для статических полей эти два действия выполняются двумя разными операторами: объявление поля находится внутри определения класса, а определение поля, как правило, располагается вне класса и зачастую представляет собой определение глобальной переменной.


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


<== предыдущая страница | следующая страница ==>
Объекты как аргументы методов и доступ к их числам.| Константные методы, их аргументы и константные объекты.

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