Четвертый BORLAND С++ и его окружение

       

Функции элементы (методы)


Как вы уже видели раньше, классы С++ могут содержать в качестве

своих элементов не только данные, но и функции элементы. Функция эле

мент - это функция, объявленная внутри определения класса и тесно

связанная с типом этого класса. В нашем примере - это операции которые выполняются в сберегательных банках. Наш объект sber_bank имеет

функции элементы deposite (вкладывать) и withdraw (снимать) деньги.

sber_bank

Объект сбербанк

< deposit << Вклад денег

$$$ < >

<

Данные > withdraw >> Снятие денег

Функции элементы

Наглядное представление функции элемента withdraw() приводится



ниже:

Селектор

Определяемый класс Имя функции элемента

Возвращаемый тип Аргумент

v v v v v

double sber_bank::withdraw(double bucks)

{

big_bucks -= bucks;

if (big_bucks < 0.0) {

printf("К сожалению, товарищ, у вас нет таких денег!\n");

big_bucks -= 10.0; // Штрафная санкция

}

return big_bucks;

}

Обратите особое внимание на использование операции селектор области действия '::' между определяемым классом и функцией элементом.

Имя класса sber_bank используется для указания компилятору, к какому

классу принадлежит withdraw (так как могут иметься и другие варианты

withdraw, принадлежащие другим классам). При внутреннем определении

селектор '::' не потребуется, так как и так ясно, что withdraw принадлежит классу sber_bank.

По аналогии, при обращении функций к элементам своего объекта,

селектор '.' лишний:

double sber_bank::withdraw(double bucks)

{

Обращение к данным своего объекта

v (не указывается принадлежность

big_bucks -= bucks; объекту - sber_bank.)

if (big_bucks < 0.0) {

printf("К сожалению, товарищ, у вас нет таких денег!\n");

big_bucks -= 10.0; // Штраф за перерасход

}

return big_bucks;

}



Содержание раздела