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

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

Y (X); *); Y a = 1; // недопустимо: Y (X (1)) не пробуется Функция член класса X с именем вида имя_функции_преобразования:

operator тип

задает преобразование из X в тип. Тип не может содержать описания [] «вектор из» или () «функция, возвращающая». Оно будет применяться неявно аналогично конструкторам выше (толко если оно единственно: #8.9), или его можно вызвать явно с помощью записи приведения к типу. Например:

class X (* // ... operator int(); *);

X a; int i = int(a); i = (int)a; i = a;

Во всех трех случаях значене будет преобразовываться функцией X::operator int(). Применение определяемых пользовтелем преобразований не сводится только к присваиваниям и инициализациям. Например:

X a, b; // ... int i = (a) ? 1+a : 0; int j = (a amp; amp;b) ? a+b : i;



8.5.7 Деструкторы

Функция член класса cl с именем ~cl называется деструтором. Деструктор не возвращает никакого значения и не полчает никаких параметров; он используется для уничтожения знчений типа cl непосредственно перед уничтожением содержащего их объекта. Деструктор не может быть вызван явно.

Деструктор для базового класса выполняется после десруктора производного от него класса. Деструкторы для объектов членов выполняются после деструктора для объекта, членом кторого они являются. Как деструкторы используютя для управлния свободной памятью, см. объяснение в #8.5.8.

Объект класса с деструктором не может быть членом обединения.



8.5.8 Свободная Память

Когда с помощью операции new создается классовый объект, то для получения необходимой памяти конструктор будет (неяно) использовать operator new (#7.1).

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

Java книги

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