|
Внутри периметра После того как будут определены все непосредственно доступные объекты, возникает следующая проблема: идентифицировать объекты, к которым возможны косвенные обращения внутри периметра. Теоретически каждый объект может обратиться к любому другому объекту. Тем не менее, объекты ссылаются друг на друга ограниченным числом способов. Переменные классов Один объект может быть внедрен в другой как переменная класса, или же переменная класса может представлять собой указатель или ссылку на другой объект. Аргументы функций классов Один объект может получить доступ к другому через аргументы своих функций. На самом деле это лишь частный случай рассмотренных выше стековых переменных. void Foo::f(Bar* b) { b->member_of_Bar(); } Базовые классы Базовый класс в С++ интерпретируется так, словно он является внедренным объектом. Как было показано в предыдущей главе, это особенно справедливо для множественного наследования и виртуальных базовых классов. По адресу одного объекта вы можете сослаться на несколько разных логических объектов внутри него - одни являются переменными класса, а другие - базовыми классами. Как правило, адреса этих объектов отличны от того объекта, которому они принадлежат. |
Copyright 2006. Климов Александр. All Right Reserved.