C++;类模板作为属性类型 我在C++项目中有一个类模板: template<class RequestHandler = DefaultRequestHandler> class Server { ... } 模板 类服务器{…}
然后我有另一个类,我想在其中保存C++;类模板作为属性类型 我在C++项目中有一个类模板: template<class RequestHandler = DefaultRequestHandler> class Server { ... } 模板 类服务器{…},c++,templates,generics,C++,Templates,Generics,然后我有另一个类,我想在其中保存Server的一个实例作为属性。所以现在我有一些类似的东西: class OtherClass { public: Server<>* server; }; class-OtherClass{ 公共:服务器*服务器; }; 除非我弄错了,否则这只允许我存储模板参数为classDefaultRequestHandler的Server类,对吗 有没有一种方法可以编写此文件,而不必将其他类也作为类模板?您可以为所有类似服务器的类添加一个公共抽象类: cl
Server
的一个实例作为属性。所以现在我有一些类似的东西:
class OtherClass {
public: Server<>* server;
};
class-OtherClass{
公共:服务器*服务器;
};
除非我弄错了,否则这只允许我存储模板参数为classDefaultRequestHandler
的Server
类,对吗
有没有一种方法可以编写此文件,而不必将
其他类
也作为类模板?您可以为所有类似服务器的类添加一个公共抽象类:
class IServer { ... };
然后
您可以为所有类似服务器的类添加公共抽象类:
class IServer { ... };
然后
我从你的问题推测,你不想使用继承?否则,我将使用基类BaseServer并从中继承服务器,并指向其他类中的BaseServer。@AlexWilson您应该将其作为答案发布,这正是他应该做的。@LuchianGrigore被打败了@如果有什么安慰的话,我给你投了一票:)我从你的问题推测,你不想使用继承权?否则,我将使用基类BaseServer并从中继承服务器,并指向其他类中的BaseServer。@AlexWilson您应该将其作为答案发布,这正是他应该做的。@LuchianGrigore被打败了@亚历克斯·威尔逊我给了你一票,如果有什么安慰的话:)
class OtherClass {
public: IServer* server;
};