dra*_*hnr 5 c++ virtual templates
我遇到了一个问题,我认为这是一个非常具体的问题.
我有2个班,一个B aseclass和一个D erived类(来自B aseclass).
乙是一个模板类(或类模板),并具有一个纯虚拟方法 virtual void work(const T &dummy) = 0;
的d erived类应该重新实现这一点,但由于d是衍生自乙 而非d是另一个模板类时,编译器吐出在我,虚函数和模板不能立即工作.
任何想法如何实现我想要的?
我感谢任何想法和想法,特别是如果你已经解决了这个问题
这个类也是固定的,我不能在不破坏现有代码库的情况下编辑它
template <typename T>
class B {
public:
...
virtual void work(const T &dummy) = 0;
..
};
Run Code Online (Sandbox Code Playgroud)
以int*为例
class D : public B<int*>{
...
virtual void work(const int* &dummy){ /* put work code here */ }
..
};
Run Code Online (Sandbox Code Playgroud)
编辑:编译器告诉我,那void B<T>::work(const T&) [with T = int*]是纯虚内d
你把const放在了错误的地方.尝试
virtual void work(int* const &dummy){ /* put work code here */ }
Run Code Online (Sandbox Code Playgroud)
const int*是相同的int const*,即它将const与int相关联而不是指针.
| 归档时间: |
|
| 查看次数: |
4261 次 |
| 最近记录: |