首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回C++引用变量的做法是邪恶的吗?

返回C++引用变量的做法是邪恶的吗?
EN

Stack Overflow用户
提问于 2009-04-16 00:49:50
回答 16查看 332.8K关注 0票数 375

我认为这有点主观;我不确定是否会有一致的意见(我已经看到了很多返回引用的代码片段)。

根据对this question I just asked, regarding initializing references的评论,返回引用可能是邪恶的,因为据我所知,它更容易错过删除它,这可能会导致内存泄漏。

这让我很担心,因为我遵循了示例(除非我是在想象),并在相当多的地方做到了这一点……我是不是误解了?它是邪恶的吗?如果是这样的话,到底有多邪恶?

我觉得,由于我的指针和引用混杂在一起,再加上我是C++新手,而且完全不知道什么时候使用什么,我的应用程序肯定是内存泄漏地狱……

此外,我知道使用智能/共享指针通常被认为是避免内存泄漏的最佳方法。

EN

Stack Overflow用户

发布于 2017-03-14 09:46:57

代码语言:javascript
复制
    Class Set {
    int *ptr;
    int size;

    public: 
    Set(){
     size =0;
         }

     Set(int size) {
      this->size = size;
      ptr = new int [size];
     }

    int& getPtr(int i) {
     return ptr[i];  // bad practice 
     }
  };

getPtr函数可以在删除后访问动态内存,甚至可以访问空对象。这可能会导致糟糕的访问异常。相反,应该实现getter和setter,并在返回之前验证大小。

票数 -1
EN
查看全部 16 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/752658

复制
相关文章

相似问题

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