c – 扩展类模板
发布时间:2020-12-16 06:46:40 所属栏目:百科 来源:网络整理
导读:如何扩展模板类,例如vector?以下代码不起作用.编译器抱怨’Vector’不是模板. template typename Tclass VectorT : public std::vectorT{public: void DoSomething() { // ... }}; 解决方法 你的语法错了;你需要使用: template typename Tclass Vector : p
如何扩展模板类,例如vector?以下代码不起作用.编译器抱怨’Vector’不是模板.
template <typename T> class Vector<T> : public std::vector<T> { public: void DoSomething() { // ... } }; 解决方法
你的语法错了;你需要使用:
template <typename T> class Vector : public std::vector<T> 也就是说,如果没有其他原因,你不应该通过继承扩展标准库容器,因为它们没有虚拟析构函数,因此它本身就是不安全的. 如果要“增强”std :: vector,请使用合成(即使用std :: vector类型的成员变量)或使用非成员函数来提供附加功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |