озникнуть проблемы. Поскольку

Автор admin Понедельник, 18 мая 2009 11:32

озникнуть проблемы. Поскольку данная функция не является функцией-членом класса CCurrency, она не имеет доступа к закрытым переменным этого класса (а именно, Dollars и Cents). Для получения такого доступа функцию нужно сделать дружественной классу CCurrency, объявив ее внутри определения CCurrency с использованием спецификатора friend. 492 Приложение А. Основы программирования на языке С++ class CCurrency { // Другие объявления friend CCurrency operator+ (long Dol. const CCurrency &Curr); // Другие объявления }: Даже если дружественная функция не является функцией-членом класса, она имеет доступ как к закрытым, так и к защищенным членам класса, который объявляет ее дружественной. Когда такая операторная функция определена, операцию сложения можно применить следующим образом: CCurrency Advertising (235. 42); // … Advertising = 100 + Advertising; Теперь компилятор проинтерпретирует выражение 100 + Advertising как operator+ (100. Advertising) и, следовательно, вызовет дружественную версию функции-оператора. Заметим: можно сделать дружественными две первые версии функции operators не определяя их как функ


Комментарии закрыты.