修改内置对象的成员函数

时间:2015-12-03 02:00:42

标签: c++

我确信这已被多次回答,但我不知道如何搜索这个。这是多态吗?超载?

基本上我想要一个矢量,并按我想要的方式修改它的功能或创建新的功能。

例如:我希望push_back()插入一个元素并按降序保持向量。因此,添加将是将元素交换()到其各自的位置。或者我想添加一个新函数pop_front()。

话虽如此,我需要它作为成员函数,例如:

vector<int> x;
x.pop_front();

pop_front(x);

这是否曾在实践中完成?我知道我可以使用现有的容器,比如我的例子中的优先级队列,但我宁愿制作完全自定义的函数。

1 个答案:

答案 0 :(得分:1)

基本上,std::vector并非设计为基类,从中继承它通常是一个坏主意。例如,它的dtor不是虚拟的。

在这里使用作文更好。 e.g。

template <typename T>
class MyVector {
private:
    std::vector<T> v;
public:
    void pop_front() {
        // processing on v ...
    }
};