Как установить и вызвать личные данные членов нескольких классов?

Обзор: я пытаюсь создать программу банковского счета, которая имеет несколько классов (4, если быть точным). Вот иерархия —

Банка

Учетные записи;

учетная запись

Вкладчик depositor_info;

Int Account_number;

Double account_balance;

вкладчик

Имя depositor_name;

строка Номер социального страхования;

название

Строка первая, последняя;

Я могу установить имя вкладчика, а затем назначить вкладчика на счет. Однако я не могу распечатать имя вкладчика. Вот основной код тестирования:

Account test[MAX_ACCTS];

string first = "john", last = "doe", social = "132456789";
int acctNumber = 987654;
Name name;
Depositor depositor;

name.setFirst(first); // works
name.setLast(last); // works

depositor.setName(name);  // this works
depositor.setSSN(social); // this works

test[1].setDepositor(depositor); // this also works.

cout << test[1].getDepositor(); // Here I get an error:
no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'Depositor')

Что я делаю неправильно?

-6

Решение

Вам нужно определить кастом operator<< перегрузка для std::ostream& а также Depositor const& в качестве аргументов. C ++ не знает, как конвертировать ваши объекты в текст.

std::ostream & operator<<(std::ostream & out, Depositor const& depositor) {
out << depositor.getName().getLast() << ", " << depositor.getName().getFirst();
out << "; " << depositor.getSSN();
return out;
}

Очевидно, что вы можете настроить конкретное поведение, если просто печатать имя + SSN не желаемое поведение.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]