Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;类模板作为属性类型 我在C++项目中有一个类模板: template<class RequestHandler = DefaultRequestHandler> class Server { ... } 模板 类服务器{…}_C++_Templates_Generics - Fatal编程技术网

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{
公共:服务器*服务器;
};
除非我弄错了,否则这只允许我存储模板参数为class
DefaultRequestHandler
Server
类,对吗


有没有一种方法可以编写此文件,而不必将
其他类
也作为类模板?

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

class IServer { ... };
然后


您可以为所有类似服务器的类添加公共抽象类:

class IServer { ... };
然后


我从你的问题推测,你不想使用继承?否则,我将使用基类BaseServer并从中继承服务器,并指向其他类中的BaseServer。@AlexWilson您应该将其作为答案发布,这正是他应该做的。@LuchianGrigore被打败了@如果有什么安慰的话,我给你投了一票:)我从你的问题推测,你不想使用继承权?否则,我将使用基类BaseServer并从中继承服务器,并指向其他类中的BaseServer。@AlexWilson您应该将其作为答案发布,这正是他应该做的。@LuchianGrigore被打败了@亚历克斯·威尔逊我给了你一票,如果有什么安慰的话:)
class OtherClass {
public: IServer* server;
};