Jeśli potrzebujesz mieć zbiór klientów, to po prostu użyj vector'a, do którego będziesz mógł wrzucać nowo utworzonych (dołączonych) klientów:
void Server::OnClientConnectedCb( /*client parameters - if any*/ )
{
this->clients.emplace_back( std::make_shared<Client>( /*client parameters - if any*/ );
}
Dzięki temu od razu masz informację ile jest klientów:
void Server::ShowAmountOfClientsInServer( void )
{
std::cout << "Current amount of clients: " << clients.size() << std::endl;
}
edit: Doprecyzuję - vector to dynamiczna "tablica", z której możesz pobierać elementy tak samo jak chciałeś wcześniej: clients[ clientID ]
lub poprzez lepszą alternatywę: clients.at( clientID )
. Zwróci Ci to wskaźnik na wybranego klienta, z którym będziesz już mógł zrobić co zechcesz.
Zauważ też, że nie korzystam już ze zmiennej klient, bo informację o rozmiarze już mam wykorzystując pokazane wcześniej clients.size()
Nie rozumiem jednak tego zapisu:
X[klient], Y[klient], Z[klient]
To wygląda jakbyś miał trzy tablice, z których chcesz wyciągnąć coś o indeksie klient. Możesz to doprecyzować, bo nie wiem czy pomogłem z Twoim problemem?