我不知道这是否可能:让我说我有一个接口定义:
virtual void func()=0;
Run Code Online (Sandbox Code Playgroud)
是否有可能在具体类中我重写它如下:
template <std::size_t number>
void func(){ /* do something with number... */ }
Run Code Online (Sandbox Code Playgroud)
谢谢!
是否有可能在具体类中我重写它如下:
不,那不行.
想想这个案子.
struct Base
{
virtual void func()=0;
};
struct Derived : Base
{
template <std::size_t number>
void func(){}
};
Run Code Online (Sandbox Code Playgroud)
和
Base* b = new Derived;
b->func(); // Which of the Derived::func() should that resolve to at run time?
// Derived::func<0>()?
// Derived::func<10>()?
// ...
Run Code Online (Sandbox Code Playgroud)
这根本没有概念意义.