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,需要是值而不是类型。