Cтраница 1
![]() |
Определение шаблона класса Stack ( часть 3 из 3. [1] |
Операция разрешения области действия, как всегда, используется для привязки определения каждой функции-элемента к области действия соответствующего класса. В данном случае именем класса является StackT. [2]
Для чего нужна операция разрешения области действия. [3]
Функции-элементы, определенные с использованием операции разрешения области действия вне определения класса, имеют областью действия этот класс. [4]
Поскольку разные классы могут иметь элементы с одинаковыми именами, операция разрешения области действия привязывает имя элемента к имени класса, чтобы однозначно идентифицировать функции-элементы данного класса. [5]
Элементы-функции, определяемые за пределами области определения класса с использованием операции разрешения области действия, находятся внутри области действия этого класса. [6]
Операции стрелка и точка наряду с круглыми и квадратными скобками имеют второй наивысший приоритет ( после операции разрешения области действия, введенной в главе 3) и ассоциативность слева направо. [7]
Поскольку функции базового и производного классов имеют одинаковые имена, функции базового класса должно предшествовать имя этого класса с операцией разрешения области действия. [8]
Поскольку функции базового класса и производного класса имеют одинаковые имена и сигнатуры, функции базового класса должно предшествовать имя класса и операция разрешения области действия. [9]
![]() |
Использование статического элемента данных для хранения числа объектов класса. [10] |
Для обращения к закрытому или защищенному статическому элементу класса в случае, когда не существует ни одного объекта этого класса, должна быть предусмотрена открытая статическая функция-элемент, при вызове которой ее имени должны предшествовать имя класса и операция разрешения области действия. [11]
![]() |
Иерархия наследования для членов университетского сообщества.| Часть иерархии наследования для класса Shape ( Форма. [12] |
Элементы производного класса могут вызывать открытые и защищенные элементы базового класса просто по имени элемента. При этом не обязательно использовать операцию разрешения области действия - по умолчанию имеется в виду текущий объект. [13]
При переопределении в производном классе функции-элемента базового класса принято вызывать версию базового класса и после этого выполнять некоторые дополнительные операции. При этом ссылка на функцию-элемент базового класса без использования операции разрешения области действия может вызвать бесконечную рекурсию, потому что функция-элемент производного класса будет в действительности вызывать сама себя. [14]
Когда функция-элемент базового класса переопределяется в производном классе, функция производного класса обычно вызывает одноименную функцию базового и выполняет некоторую дополнительную работу. В случае, когда для вызова функции базового класса не используется операция разрешения области действия, возникает бесконечная рекурсия, так как функция-элемент производного класса фактически вызывает саму себя. [15]