加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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类型的成员变量)或使用非成员函数来提供附加功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读