C++类模板的属性类型
问题描述:
我有一个C类模板++项目:C++类模板的属性类型
template<class RequestHandler = DefaultRequestHandler>
class Server { ... }
我再有,我想拥抱的Server<WhateverRequestHandlerIWant>
实例作为属性的类。所以目前我有类似:
class OtherClass {
public: Server<>* server;
};
除非我弄错了,这样只会让我来存储Server
类中的模板参数是类DefaultRequestHandler
,是否正确?
有没有办法写这个,而不仅仅是使OtherClass
类模板?
答
你可以添加一个共同的抽象类为所有服务器类类:
class IServer { ... };
然后
template<class RequestHandler = DefaultRequestHandler>
class Server : virtual public IServer { ... }
和
class OtherClass {
public: IServer* server;
};
我从你的问题设定,你不要”你想使用继承?否则,我会使用基类BaseServer,并从中继承Server,并从OtherClass指向BaseServer。 –
@AlexWilson你应该发布这个答案,这正是他应该怎么做的。 –
@LuchianGrigore挨打吧! –