Cтраница 2
В строках 17 и 18 объявляется две переменные-члены, представляющие собой указатели на целочисленные значения. В реальной жизни трудно вообразить, для чего может понадобиться создание переменных-членов как указателей на целочисленные значения. Но в данном случае такие переменные являются отличными объектами для демонстрации методов управления переменными-членами, сохраненными в динамической области памяти. [16]
Функции-члены принадлежат своему классу, как и переменные-члены. Они оперируют переменными-членами и определяют функциональные возможности класса. [17]
Оператор создает объект этого класса и инициализирует обе переменные-члены. [18]
![]() |
Виртуальное наследование. [19] |
Обычно конструктор класса инициализирует только собственные переменные и переменные-члены базового класса. Из этого правила делается исключение, если используется виртуальное наследование. [20]
Копировщик, заданный компилятором по умолчанию, просто копирует все переменные-члены из указанного в параметре объекта в переменные-члены нового объекта. Такое копирование называется поверхностным; и, хотя оно подходит для большинства случаев, могут возникнуть серьезные проблемы, если переменные-члены окажутся указателями на ячейки динамической памяти. [21]
![]() |
Иерархия приведенных в примере классов. [22] |
В следующем фрагменте программы создается экземпляр класса RoundBlock, инициализируются все переменные-члены и рисуется блок с закругленными углами. [23]
Конструктор по умолчанию класса CBlock позволяет создавать объекты, в которых все переменные-члены равны нулю, без передачи значений или вызова методов класса. [24]
Это средство позволяет производить класс более чем от одного базового класса, добавляя переменные-члены и методы двух и более классов. [25]
Хотя переменные-члены могут быть открытыми, но считается хорошей практикой программирования, когда переменные-члены объявляются все же закрытыми, а доступ к этим данным обеспечивается за счет открытых методов доступа. [26]
Спецификатор const в определении функции GetCoord означает, что функция не может изменять переменные-члены. Если она пытается это сделать, компилятор будет генерировать ошибку при компиляции исходного кода. [27]
В листинге 6.2 показан класс Cat, в котором в этот раз объявлены закрытые переменные-члены и открытые методы доступа к закрытым данным. [28]
Копировщик, заданный компилятором по умолчанию, просто копирует все переменные-члены из указанного в параметре объекта в переменные-члены нового объекта. Такое копирование называется поверхностным; и, хотя оно подходит для большинства случаев, могут возникнуть серьезные проблемы, если переменные-члены окажутся указателями на ячейки динамической памяти. [29]
Однако текущая версия класса Rectangle явно нарушает этот принцип, так как пользователь может непосредственно читать или модифицировать любые переменные-члены. [30]