Добрый день! Вопрос по ООП на С++ (отредактировал, убрал наследование)
Столкнулся с такой проблемой: есть класс Bank, и есть класс Сlient, который содержит личные данные. В Bank есть вектор, который содержит объекты класса Client (проще говоря, содержит объекты, каждый из которых конкретный клиент).
И есть задача: в Bank написать функцию print() , которая распечатывала бы данные всех клиентов, которые содержатся в векторе. Только как это сделать правильно? Первая мысль была создать в Client функцию, которая возвращала бы все данные ( или несколько функций), и таким образом передать это в print().
Но это решение не совсем верное: получается, я раскрываю данные конкретных клиентов. Как сделать так, чтобы не создавать такую функцию? спасибо!!
#include <iostream>
#include <time.h>
#include <vector>
#include <string>
using std::vector;
using std::string;
using std::cout;
using std::endl;
//--------class--------
class Client {
public:
//constructor
Client(string name, int ID) {
this->ID = ID;
this->name = name;
}
//function that returns ID of client
int return_ID() {
return ID;
}
//function that returns name of client
string return_name() {
return name;
}
private:
int ID;
string name;
};
//---------------------------------------
class Bank {
private:
//vector of clients
vector<Client*> clients;
public:
//function for adding clients to vector
void addclientd(Client* client) {
clients.push_back(client);
}
//function for printing data of clients
void print() {
for (int i = 0; i < clients.size(); i++) {
cout << "ID is " << clients[i]->return_ID() << " ";
cout << "Name is " << clients[i]->return_name() << endl;
}
}
};
//---------------------------------
int main() {
Client Ivanov("Ivanov", 3234);
Client Somebody("Somebody", 2345);
Bank bank;
bank.addclientd(&Ivanov);
bank.addclientd(&Somebody);
bank.print();
system("pause");
return 0;
}
Организуйте у класса Client
метод print()
который будет выводить данные экземпляра.
А у банка аналогично метод print()
должен в цикле перебирать вектор клиентов и вызывать вышеуказанный метод клиента.
И прочитайте про стиль написания кода, будет полезно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть отсортированный по алфавиту список с фамилиями, содержащийся в
Имеется простой проект DxЯ подключаю заголовочный и библиотеку