Допустим, у меня есть простой сервер с шаблоном, который принимает клиента в качестве аргумента шаблона:
template<class T>
class Server<T>{
Server(int port);
}
и Клиент определяется примерно так:
class Client{
Client(Server<Client> *server, // <--
int socket);
};
Но я также хочу сказать, что класс User
наследуется от Client
(class User : public Client
), чтобы я мог сделать Server<User>
вместо Server<Client>
. класс User
, очевидно, должен передать Server<Client>
в качестве параметра при построении Client
. Однако в текущей реализации это кажется невозможным.
Как мне подойти к этой проблеме?