[英]C++ Templates and Inheritance
假设我有一个带有模板的简单服务器,该模板接受客户端作为模板参数:
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
在构造Client
时显然需要将Server<Client>
作为参数传递。 但是,对于当前的实现,这似乎是不可能的。
我应该如何解决这个问题?
那这个呢?
template<class T>
class Server<T>{
Server(int port);
};
template<class Derived>
class Client {
Client(Server<Derived> *server, int socket);
virtual ~Client() {} // Base classes should have this
};
class User : public Client<User> {
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.