Virtual method template in Class template C++
本问题已经有最佳答案,请猛点这里访问。
我的学习有点小问题。
1 2 3 4 5 6 7 | template<typename T> class AlgorytmSortujacy { public: template <typename F> virtual std::vector<T> sortuj(std::vector<T> w, F porownywacz) const = 0; }; |
该代码必须是排序算法的接口。当我实现冒泡排序时,我必须从这个类派生并实现
问题是VS2013不接受这些形式的代码,我的意思是模板虚拟函数(c2898错误)。你知道有什么解决办法吗?
如您所见,
最后-我想我不能更改这个代码,我是从老师那里得到的,我想我必须让它工作。
问题出在
虚拟成员函数不能是模板,引用clang"在成员函数模板上不能指定
来自CPP参考网站;
A member function template cannot be virtual, and a member function template in a derived class cannot override a virtual member function from the base class.
这里的区别主要归因于
你在课堂上用的是一致的编译器吗?老师用的是什么?我会和你的老师讨论这个问题,引用编译器的错误,并检查你是否和你的同学在同一个页面上,告诉他们他们会出现什么错误。
本问答包含更多细节和您可能感兴趣的一些备选方案。