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++_Templates - Fatal编程技术网

C++ 是否可以将纯虚拟函数重写为模板?

C++ 是否可以将纯虚拟函数重写为模板?,c++,templates,C++,Templates,我不知道这是否可能: 假设我有一个接口,它定义: virtual void func()=0; 是否有可能在混凝土类别I中覆盖它,如下所示: template <std::size_t number> void func(){ /* do something with number... */ } 模板 void func(){/*使用数字…*/} 谢谢 没有 函数模板从不重写虚拟函数,无论是纯函数还是其他函数 是否有可能在混凝土类别I中覆盖它,如下所示: template

我不知道这是否可能: 假设我有一个接口,它定义:

virtual void func()=0;
是否有可能在混凝土类别I中覆盖它,如下所示:

template <std::size_t  number> 
void func(){ /* do something with number... */ }
模板
void func(){/*使用数字…*/}
谢谢

没有

函数模板从不重写虚拟函数,无论是纯函数还是其他函数

是否有可能在混凝土类别I中覆盖它,如下所示:

template <std::size_t  number> 
void func(){ /* do something with number... */ }
不,那不行

想想这个案例

struct Base
{
   virtual void func()=0;
};

struct Derived : Base
{
   template <std::size_t  number> 
   void func(){}
};
struct Base
{
虚void func()=0;
};
派生结构:基
{
模板
void func(){}
};

Base*b=新派生的;
b->func();//在运行时应该解析为哪个派生::func()?
//派生::func()?
//派生::func()?
// ...

这在概念上没有任何意义。

我的意思是:模板void func(){//do thing with T}如果包含重写的整个类都被模板化,那么你可以重写并使用
number
进行操作,只要你可以将整个类模板化。你的意思是
b->func()
?@YesThatIsMyName,确实如此。是否打算在类定义中从
size\t
模板值切换到有关调用函数的注释中的
typename
?注释中还有拼写错误
func
@YesThatIsMyName,需要是值而不是类型。