8.1 Спецификаторы Класса Памяти

8.1 Спецификаторы Класса Памяти

Спецификаторы – это:

спецификатор_класса_памяти: auto static extern register

Описания, использующие спецификаторы auto, static и register также служат определениями тем, что они вызывают рзервирование соответствующего объема памяти. Если описание extern не является определением (#4.2), то где-то еще должно быть определение для данных идентификаторов.

Описание register лучше всего представить как описание auto (автоматический) с подсказкой компилятору, что описанные переменные усиленно используются. Подсказка может быть проинорирована. К ним не может применяться операция получения ареса amp;.

Спецификаторы auto или register могут применяться только к именам, описанным в блоке, или к формальным параметрам. Внутри блока не может быть описаний ни статических функций, ни статических формальных параметров.

В описании может быть задан максимум один sc_спецификтор. Если в описании отсутсвует спецификатор_класса_памяти, то класс памяти принимается автоматическим внутри функции и статическим вне. Исключение: функции не могут быть автоматческими.

Спецификаторы static и extern могут использоваться толко для имен объектов и функций.

Некоторые спецификаторы могут использоваться только в описаниях функций:

спецификатор_функции: overload inline virtual

Спецификатор перегрузки overload делает возможным ипользование одного имени для обозначения нескольких функций, см. #8.9.

Спецификатор inline является только подсказкой компилтору, не влияет на смысл программы и может быть проигнорирван. Он используется, чтобы указать на то, что при вызове функции inline-подстановка тела функции предпочтительнее обычной реализацци вызова функции. Функция (#8.5.2 и #8.5.10), определенная внутри описания класса, является inline по умолчанию.

Спецификатор virtual может использоваться только в опсаниях членов класса, см. #8.5.4.

Спецификатор friend используется для отмены правил сорытия имени для членов класса и может использоваться только внутри описаний классов, см. #8.5.9.

С помощью спецификатора typedef вводится имя для типа, см. #8.8.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Имя класса

Из книги Самоучитель UML автора Леоненков Александр

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


Атрибуты класса

Из книги C++ автора Хилл Мюррей

Атрибуты класса Во второй сверху секции прямоугольника класса записываются его атрибуты (attributes) или свойства. В языке UML принята определенная стандартизация записи атрибутов класса, которая подчиняется некоторым синтаксическим правилам. Каждому атрибуту класса


8.2 Спецификаторы Типа

Из книги Справочное руководство по C++ автора Страустрап Бьярн

8.2 Спецификаторы Типа Спецификаторами типов (спецификатор_типа) являются:спецификатор_типа:простое_имя_типа спецификатор_класса enum-спецификатор сложный_спецификатор_типа constСлово const можно добавлять к любому допустимому спецфикатору_типа. В остальных случаях в


Тип класса

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

Тип класса Любой язык, совместимый с .NET, поддерживает, как минимум, тип класса, который является "краеугольным камнем" объектно-ориентированного программирования (ООП). Класс может состоять из любого числа членов (таких, как свойства, методы и события) и элементов данных


Тип класса в C#

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Тип класса в C# Если вы имеете опыт создания объектов в рамках какого-то другого языка программирования, то, несомненно, знаете о роли определений классов. Формально говоря, класс – это определенный пользователем тип (User-Defined Type - UDT), который скомпонован из полей данных


Методы класса

Из книги C++ для начинающих автора Липпман Стенли

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


Конструкторы класса

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Конструкторы класса Для класса CObject определены два конструктора. Первый конструктор используется по умолчанию и не имеет параметров. Именно этот конструктор вызывается конструкторами классов, наследованных от CObject:CObject();Второй конструктор класса CObject называется


Конструктор класса

Из книги автора

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


Шаг 8 - Еще раз о статистике класса.

Из книги автора

Шаг 8 - Еще раз о статистике класса. Пока праздники не начались и не кончились, пока работает интернет и библиотека, снова займемся любимым делом - статистикой класса. Мы уже говорили о ней, и уяснили, что здесь неплохо работает идиома ведущих указателей. Но на плюсах


13.6.1. Тип члена класса

Из книги автора

13.6.1. Тип члена класса Указателю на функцию нельзя присвоить адрес функции-члена, даже если типы возвращаемых значений и списки параметров полностью совпадают. Например, переменная pfi – это указатель на функцию без параметров, которая возвращает значение типа int:int


14.1. Инициализация класса

Из книги автора

14.1. Инициализация класса Рассмотрим следующее определение класса:class Data {public:int ival;char *ptr;};Чтобы безопасно пользоваться объектом класса, необходимо правильно инициализировать его члены. Однако смысл этого действия для разных классов различен. Например, может ли ival


14.2. Конструктор класса

Из книги автора

14.2. Конструктор класса Среди других функций-членов конструктор выделяется тем, что его имя совпадает с именем класса. Для объявления конструктора по умолчанию мы пишем2:class Account {public:// конструктор по умолчанию ...Account();// ...private:char *_name;unsigned int _acct_nmbr;double _balance;};Единственное


14.3. Деструктор класса

Из книги автора

14.3. Деструктор класса Одна из целей, стоящих перед конструктором, - обеспечить автоматическое выделение ресурса. Мы уже видели в примере с классом Account конструктор, где с помощью оператора new выделяется память для массива символов и присваивается уникальный номер счету.


Определения класса

Из книги автора

Определения класса Классы определяются в С++ аналогично тому, как это делается в Java и C#, однако надо иметь в виду, что существует несколько отличий. Мы рассмотрим эти отличия на нескольких примерах. Начнем с класса, представляющего пару координат (x, у):01 #ifndef POINT2D_H 02 #define