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