1

我在 C++ 项目中有一个类模板:

template<class RequestHandler = DefaultRequestHandler>
class Server { ... }

然后我有另一个类,我想在其中保存一个实例Server<WhateverRequestHandlerIWant>作为属性。所以目前我有类似的东西:

class OtherClass {
public: Server<>* server;
};

除非我弄错了,否则这只允许我存储Server模板参数为 class 的类DefaultRequestHandler,对吗?

有没有办法在不制作OtherClass类模板的情况下编写它?

4

1 回答 1

4

您可以为所有类似服务器的类添加一个通用抽象类:

class IServer { ... };

然后

template<class RequestHandler = DefaultRequestHandler>
class Server : virtual public IServer { ... }

class OtherClass {
public: IServer* server;
};
于 2012-06-26T13:54:39.297 回答