Страница 1 из 1

Использование класса в другом классе + массив классов.

Добавлено: 30 дек 2009, 21:40
Dragon
Есть класс Money. Он используется в классе Cheque.

Класс Cheque имеет 3 закрытые переменные:
- int number; //номер чека
- Money sum; //сумма чека
- char state; //состояние (оплачен или нет)

Есть массив классов - Cheque test[5] (собственно список из 5 чеков).
Нужно подсчитать сумму оплаченных чеков, но компилятор выдает ошибку, хочет указатель (указатели я пока еще не знаю и задание на них не расчитано):

Код: Выделить всё

Cheque test[5];
Money paid_cheques; //сумма оплаченных чеков

//Сумма оплаченных чеков
for(i = 0; i < 5; i++)
{
    //1.
    if(test[i].get_state == 'y') //error: invalid use of member (did you forget the `&' ?)
    {
        //2.
        paid_cheques = paid_cheques + test[i].get_sum; //error: no match for 'operator+' in 'paid_cheques + test[i].chequenamespace::Cheque::get_sum'|
     }
}
1. Аксессор выглядит так:

Код: Выделить всё

Money:
 double Money::get_value() const
    {
        return (all_cents * 0.01);
    }

Cheque:
double Cheque::get_sum() const
    {
        return sum.get_value();
    }

//Есть такой вариант
Money Cheque::get_sum() const
    {
        return sum;
    }
2. В классах Money и Cheque есть перегрузка операторов '+'.
Хотя возможно нужна какая-то другая перегрузка?!
Если вместо перегрузки оператора '+' использовать сложение через аксессоры:

Код: Выделить всё

paid_cheques = paid_cheques.get_value + test[i].get_sum;
то в итоге выходят ошибки аналогичные п.1 (требование указателя).

Вроде как других ошибок нету.
Заранее спасибо за помощь.

Re: Использование класса в другом классе + массив классов.

Добавлено: 30 дек 2009, 22:55
Newbie
выложи описание классов, а лучше сам проект.

Re: Использование класса в другом классе + массив классов.

Добавлено: 31 дек 2009, 01:10
Dragon
Хм, элементарнейшую ошибку допустил. Век живи, век учись... Вызываю функцию-член, а () забыл указать. Вот он и ругался на то, что я возможно хочу указатель использовать.