Указатели на объекты в С++
До сих пор доступ к членам объекта получали с помощью оператора точка (.). Доступ к члену объекта можно получить и через указатель на этот объект. В этом случае обычно применяется оператор стрелка (->). Вы объявляете указатель на объект точно так же, как и указатель на переменную любого другого типа. Задайте имя класса этого объекта, а затем имя переменной со звездочкой перед ним. Для получения адреса объекта перед ним необходим оператор &, точно так же, как это делается для получения адреса переменной другого типа. Как и для любого другого указателя, если вы инкрементируете указатель на объект, он будет указывать на следующий объект такого же типа.
Пример.
Замечание. Отметьте, как объявление myclass *p; создает указатель на объект класса myclass. Это важно для понимания следующего положения: создание указателя на объект не создает объекта, оно создает только указатель на него.
Для передачи адреса объекта ob в переменную р, использовалась инструкция: р = sob; И последнее, в программе показано, как можно получить доступ к членам объекта с помощью указателя на этот объект.
Пример.
#includeusing namespace std; class myclass { int a; public: myclass(int x); // конструктор int get(); }; myclass::myclass(int x) { a = x; } int myclass::get() { return a; } int main() { myclass ob(120); // создание объекта myclass *p; // создание указателя на объект p = &ob; // передача адреса ob в p cout << "Значение, получаемое через объект:" << ob.get(); cout << "\n"; cout << "Значение, получаемое через указатель:" << p->get(); return 0; }
Для передачи адреса объекта ob в переменную р, использовалась инструкция: р = sob; И последнее, в программе показано, как можно получить доступ к членам объекта с помощью указателя на этот объект.