Иногда доступ к полям класса делается через этот указатель, например:
this->Summa
Естественно, *this является значением, на которое указывает этот указатель. Это значение можно использовать в качестве возвращаемого, что мы и увидим в дальнейшем. Инициализация при объявлении в данном случае обеспечила нам присваивание полей текущего объекта полям объекта t.
Перегрузка методов
Методы так же, как и обычные функции, можно перегружать — это одно из проявлений принципа полиморфизма в С++. Метод AddMoneyO — хороший кандидат для перегрузки. Параметры второго варианта метода должны отличаться от параметров первого: можно складывать деньги с числом (которое будем считать денежной суммой-константой). Тогда реализация второго метода может быть такой, как показано в листинге 1.13.
Листинг 1.13. Определение перегруженного метода AddMoneyO
ТМопеу ТМопеу::AddMoney(const long double &г) { ТМопеу t; // локальный объект
t.Init(r); // инициализировали локальный объект return t.AddMoney(*this); // сложение с текущим объектом }
Здесь мы применили важнейший принцип профессионального программирования: для реализации нового метода использовались уже проверенные и гарантированно правильно работающие методы того же класса. Поэтому риск написать ошибочный текст существенно снижается. Кроме того, при будущих возможных изменениях класса ТМопеу эта функция вряд ли изменится — разве что мы изменим имена методов инициализации и сложения.
Опубликовал Kest
August 20 2013 21:48:59 ·
0 Комментариев ·
2978 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.