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

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

Конструктор может осществить свое собственное резервирование памяти посредством присваивания указателю this до каких-либо использований члна. С помощью присваивания this значения ноль деструктор мжет избежать стандартной операции дерезервирования памяти для объекта его класса. Например:

class cl (* int v[10]; cl () (* this = my_own_allocator (sizeof (cl)); *) ~cl () (* my_own_deallocator (this); this = 0; *) *) На входе в конструктор this являеется не-нулем, если рзервирование памяти уже имело место (как это имеет место для auto, static объектов и объектов членов), и нулем в остальных случаях. Вызовы конструкторов для базового класса и объектов члнов будут иметь место после присваивания указателю this. Если

конструктор базового класса осуществляет присваивание this, то новое значение также будет использоваться конструктором производного класса (если таковой есть).

При уничтожении вектора объектов класса с деструктором необходимо указывать число элементов. Например:

class X (* ... ~X(); *); X* p = new X [size]; delete[size] p;



8.5.9 Видимость Имен Членов

Члены класса, описанные с ключевым словом class, являюся закрытыми, то есть, их имена могут использоваться только функциями членами (#8.5.2) и друзьями (см. #8.5.10), если они не стоят после метки «public:». В этом случае они являются открытыми. Открытый член может использоваться любой функцией. Struct является классом, все члены которого общие, см. #8.5.12.

|< Пред. 324 325 326 327 328 След. >|

Java книги

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