当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>c++智能指针的成立</b>[VC/C++编程]

赞助商链接



  本文“<b>c++智能指针的成立</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

zero 坐在餐桌前,机械的反复“夹菜 -> 咀嚼 -> 吞咽”的行动序列,脸上用无形的大字写着:我漫不经心.在他的对面坐着 Solmyr ,慢条斯理的吃着他那份午饭,保持着他一贯很有涵养的形象 ——— 大概按照 zero 这些熟习他本质的人的说法:假象.

“怎么了 zero ?胃口不好么?”,基本填饱肚子之后,Solmyr 认为仿佛应当关心一下他的学徒了.

“呃,没什么,只是 …… Solmyr ,C++ 为什么不支持垃圾汇集呢?(注:垃圾汇集是一种机制,保证动态分配了的内存块会自动释放,Java 等语言支持这一机制.)”

Solmyr 叹了口吻,用一种安静的眼神盯着 zero :“是不是在 BBS 上和人吵 C++ 和 Java 哪个更好?并且吵输了?我早奉告过你,这种争辩再无聊不过了.”

“呃 …… 是”,zero 不得不承认 ——— Solmyr 的眼神固然一点也不锋利,但是却莫名其妙的让 zero 产生了微微的惊骇感.

“并且,谁奉告你 C++ 不支持垃圾汇集的?”

“啊!Solmyr 你不是开玩笑吧?!”

“zero 你得改变一下见解.我问你,C++ 支不支持可以动态改变大小的数组?”

“这 …… 好象也没有吧?”

“那 vector 是什么东西?”

“呃 ……”

“支持一种特点,并非说非得把这个特点加到语法里去,我们也可以挑选用现有的语言机制实现一个库来支持这个特点.以垃圾汇集为例,这里我们的任务是要保证每一个被动态分配的内存块都可以被释放,也就是说 ……”,Solmyr 不知从那边找出了一张纸、一支笔,写到:

int* p = new int; // 1 delete p; // 2

“也就是说,关于每一个 1 ,我们要保证有一个 2 被调用,1 和 2 必须成对呈现.我来问你,C++ 中有什么东西是由语言本身保证一定成对呈现的?”

“……”,zero 暴露了勤奋搜索记忆的表情,不过很明显一无所获.

“提醒一下,和类的成立有关.”

“哦!构造函数与析构函数!”

“精确.惋惜普通指针没有构造函数与析构函数,所以我们必必要写一个类来加一层包装,最简单的就象这样:”

class my_intptr
{
public:
int* m_p;

my_intptr(int* p){ m_p = p; }
~my_intptr(){ delete m_p; }
};

…………

my_intptr pi(new int);
*(pi.m_p) = 10;

…………


  以上是“<b>c++智能指针的成立</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .