C++   ::   Хилл Мюррей

Страница: 334 из 357

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



8.6.3 Ссылки

Когда переменная описана как T amp;, то есть «ссылка на тип T», она должна быть инициализирована или объектом типа T, или объектом объектом, который может быть преобразован в T. Ссыка становится другим именем объекта. Например:

int i; int amp; r = i; r = 1; // значение i становится 1 int* p = amp;r; // p указывает на i

Значение ссылки не может быть изменено после инициализции. Заметьте, что обработка инициализации ссылки очень силно зависит от того, что ей присваивается. Если инициализатор для ссылки на тип T не является lvalue, то будет создан и инициализован инициализатором обект типа T. Тогда ссылка станет именем для этого объекта. Время жизни объекта, созданного таким способом, будет область видимости, в которой он создан. Например:

double amp; rr = 1;

допустимо, и rr будет указывать на объект типа double, содержащий значение 1.0.

Заметьте, что ссылка на класс B может быть инициализирвана объектом класса D при условии, что B является открытым базовым классом класса D (в этом случае D есть B).

|< Пред. 332 333 334 335 336 След. >|

Java книги

Контакты: [email protected]