Disons que j'ai un simple serveur avec un modèle qui accepte un client car il est un argument de modèle:C++ Modèles et héritage
template<class T>
class Server<T>{
Server(int port);
}
et quelque chose comme est défini client ceci:
class Client{
Client(Server<Client> *server, // <--
int socket);
};
Mais Je veux aussi dire, avoir la classe User
hériter de Client
(class User : public Client
), donc je pourrais faire Server<User>
au lieu de Server<Client>
. classe User
doit évidemment passer Server<Client>
en tant que paramètre lors de la construction Client
. Cependant, avec la mise en œuvre actuelle, cela semble impossible.
Comment aborder ce problème?
Requis un refactoring du code existant, mais c'était essentiellement ce que je voulais. Grand merci! – Chaosteil
En fait, le destructeur serait probablement mieux protégé et non virtuel. Cette conception ne veut certainement pas que les gens suppriment des instances de l'utilisateur via un 'Client *'. –
@onebyone: Pourquoi pas? – mmmmmmmm