修改内置对象的成员函数

Modifying member functions of built-in objects

本文关键字:成员 函数 对象 内置 修改      更新时间:2023-10-16

我确信这个问题已经回答了很多次,但我不知道如何搜索。这是多态性吗?超载?

基本上,我想取一个向量,按照我想要的方式修改它的函数,或者创建新的函数。

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

话虽如此,我需要它作为一个成员功能,例如:

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

不是:

pop_front(x);

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

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

这里最好用作文。例如

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