首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改内置对象的成员函数

修改内置对象的成员函数
EN

Stack Overflow用户
提问于 2015-12-03 02:00:41
回答 1查看 53关注 0票数 1

我相信这个问题已经被回答过很多次了,但是我不知道如何去寻找这个。这是多态性吗?超载?

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

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

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

代码语言:javascript
复制
vector<int> x;
x.pop_front();

不是:

代码语言:javascript
复制
pop_front(x);

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-03 02:11:54

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

这里最好用作文。例如:

代码语言:javascript
复制
template <typename T>
class MyVector {
private:
    std::vector<T> v;
public:
    void pop_front() {
        // processing on v ...
    }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34056579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档