ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн
Ссылки на члены класса
В программе ENGLPTR затем создается другой объект типа Distance с использова- нием операции new, которая возвращает указатель на него, именуемый distptr.
Возникает вопрос: как мы ссылаемся на методы класса из объекта, на кото- рый указывает distptr? Вы можете догадаться, что в этом случае мы можем ис- пользовать точку (.), операцию доступа к членам класса:
distptr.getdist ( ); // так нельзя: distptr не просто переменная
но это не будет работать. Операция точки требует, чтобы идентификатор слева был переменной. Так как distptr — указатель на переменную, то в этом случае применяется другой синтаксис. Это другой случай использования операции ра- зыменования (операции получения содержимого переменной, на которую указы- вает указатель):
(*distptr).getdist ( ); // так можно: разыменование указателя это переменная
Однако это немного неуклюже из-за скобок (скобки необходимы, так как опе- рация точки (.) имеет больший приоритет, чем операция разыменования (*)). Эквивалентный, но более краткий способ записи предоставляется операцией доступа к членам класса, он состоит из дефиса и знака больше чем:
distptr->getdist ( ); // лучший вариант
Как вы могли увидеть в примере ENGLPTR, операция -> работает с указателя- ми на объекты так же, как и операция точки работает с объектами. Рассмотрим результат работы программы:
Введите футы: 10 Введите дюймы: 6.25 10'-6.25"
Введите футы: 6 Введите дюймы: 4.75 6'-4.75"
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Схожі підручники
- Бухгалтерський фінансовий облік (частина 1)
- Банки як агенти валютного контролю
- Соціальна педагогіка (частина 1)
- Мікро економіка. Супровід лекцій
- Трансформаційні процеси в господарському комплексі України та їхні регіональні особливості
- Стан НПС та основні напрями природоохоронної політики Чехії управлінські, організаційні, економічні та юридичні аспекти
