Специальные функции-члены (C++)
C++ определяет несколько типов функций, которые можно объявлять только в виде членов класса - это называется «специальными функции-членами». Эти функции влияют на способ объекты заданного класса создаются, удалено, копируется и преобразуется в объекты других типов.Другое важное свойство многие из этих функций чтобы их можно было вызвать неявно (компилятором).
Специальные функции-члены, описанные в этом разделе, следующим образом:
Конструкторы.Включение автоматической инициализации объектов.
деструкторы.Выполните очистку после того как объекты явно или неявно уничтожены.
функции преобразования.Преобразование между типами класса и другими типами.
функция оператора new.Динамически выделяет хранилище.
функция удаления оператора.Хранение выделенного с помощью выпусков создать оператор.
Оператор присваивания () operator=.Используется, когда назначение выполняется.
Элементы в предыдущем списке могут быть определяемой пользователем, для каждого класса.
Специальные функции-члены подчиняются тем же правилам доступа, что и другие функции элементов.Правила доступа, описанных в Управление доступом к членам.В следующей таблице показано, как поведение функции участника и друга.
Сводка функций расширения функциональности
Тип функции |
Функция наследуются из базового класса? |
Может быть виртуальной функции? |
Функция может возвращать значение? |
Функция элемент или другой? |
Компилятор создаст функцию в случае, если пользователь не выполняет? |
---|---|---|---|---|---|
Конструктор |
Нет |
Нет |
Нет |
Элемент |
Да |
Конструктор копий |
Нет |
Нет |
Нет |
Элемент |
Да |
деструктор |
Нет |
Да |
Нет |
Элемент |
Да |
Преобразование |
Да |
Да |
Нет |
Элемент |
Нет |
назначение (operator=) |
Нет |
Да |
Да |
Элемент |
Да |
new; |
Да |
Нет |
void* |
статический элемент |
Нет |
удаление |
Да |
Нет |
void |
статический элемент |
Нет |
Другие функции элементов |
Да |
Да |
Да |
Элемент |
Нет |
Дружественной функции |
Нет |
Нет |
Да |
Friend |
Нет |