当前位置: > 职场指南 > 面试试题 > 本文内容

程序员面试题精选100题(30)-赋值运算符重载函数[C/C++/C#](2)

发布时间:2019-09-22整理:admin阅读:

&str)
  • {
  • if(this != &str)
  • {
  • CMyString strTemp(str);
  • char* pTemp = strTemp.m_pData;
  • strTemp.m_pData = m_pData;
  • m_pData = pTemp;
  • }
  • return *this;
  • }
  • 在这个函数中,我们定义一个临时实例strTemp,并把strTempm_pData指向当前实例(*this)的m_pData。由于strTemp是个局部变量,但程序员运行到if的外面是也就出了的该变量的域,就会自动调用strTemp的析构函数,就会把strTemp.m_pData所指向的内存释放掉。由于strTemp.m_pData指向的内存就是当前实例之前m_pData的内存。这就相当于自动调用析构函数释放当前实例的内存。如果新增加指针成员变量,我们只需要在析构函数里正确地释放,而不需要对赋值运算符函数做任何修改。

    共2页上一页12下一页
    查看更多相关的诗词

    欢迎分享转载→ 程序员面试题精选100题(30)-赋值运算符重载函数[C/C++/C#](2)

    上一篇:程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]

    下一篇:程序员面试题精选100题(31)-从尾到头输出链表

    相关文章

    用户评论

    精品推荐

    月工作计划 年度计划 季度工作计划 销售工作计划

    专题文章

    图文资讯

    点击排行

    网站地图 - 辞职报告- 职场指南 - 实习总结 - 实习周记 - 实习鉴定- - 个人总结 - 主持词 - 工作计划