当前位置: 首页 > news >正文

青浦网站制作公司贵州十大广告公司

青浦网站制作公司,贵州十大广告公司,市场调研方法有哪些,wordpress使用方法今天我们来学习C中的一个独有的特性#xff0c;智能指针。智能指针的作用非常的强大#xff0c;它解决了C语言关于指针部分内存泄漏的BUG。那么在此处#xff0c;内存泄漏指的是什么呢#xff1f; -动态申请堆空间#xff0c;用完后不归还 -C语言中没有垃圾回收机制 -指…今天我们来学习C中的一个独有的特性智能指针。智能指针的作用非常的强大它解决了C语言关于指针部分内存泄漏的BUG。那么在此处内存泄漏指的是什么呢 -动态申请堆空间用完后不归还 -C语言中没有垃圾回收机制 -指针无法控制所有堆空间的生命周期 下面我们以一个程序的例子来说明内存泄漏大概会发生什么情况 #include iostream #include stringusing namespace std;class Test {int i; public:Test(int i){cout Test(int i) endl;this-i i;}int value(){return i;}~Test(){cout ~Test() endl;} };int main() {for(int i 0;i5;i){Test* p new Test(i);cout p-value() endl;}return 0; }上面的程序运行结果为 运行结果确实没有问题但是仔细分析这个程序我们就会发现我们申请了堆空间之后程序结束后没有释放也没有调用析构函数。我们这里只运行了五次循环看不出内存的泄漏问题如果是在大型程序中出现这样的错误长时间运行后肯定会出现内存泄漏的问题。 那么我们就要来解决这个问题我们的目标要求是什么呢 *需要一个特殊的指针 *指针生命周期结束时主动释放堆空间 *一个堆空间只能由一个指针标识这样可以防止多次释放指针造成程序崩溃 *杜绝指针运算和指针比较 针对以上的要求我们给出以下解决方案 -重载指针操作符-和*让类对象可以像指针一样使用它们 -只能通过类的成员函数来重载指针操作符 -重载函数不能使用参数 -只能定义一个重载函数这与不能使用参数是一个道理 以上的解决方案实际上就是我们需要的智能指针啦 那么什么是智能指针呢我们还是先来从程序来慢慢分析慢慢理解智能指针的概念。 #include iostream #include stringusing namespace std;class Test {int i; public:Test(int i){cout Test(int i) endl;this-i i;}int value(){return i;}~Test(){cout ~Test() endl;} };class Pointer {Test* mp; public:Pointer(Test* p NULL){mp p;}Pointer(const Pointer obj){mp obj.mp;const_castPointer(obj).mp NULL; //只能有一个指针指向堆空间}Pointer operator (const Pointer obj){if( this ! obj ){delete mp;mp obj.mp;const_castPointer(obj).mp NULL;}return *this;}Test* operator - (){return mp;}Test operator * (){return *mp;}bool isNull(){return (mp NULL);}~Pointer(){delete mp;} };int main() {Pointer p1 new Test(0);cout p1-value() endl;Pointer p2 p1;cout p1.isNull() endl;cout p2-value() endl;return 0; }运行结果为 由以上程序的运行结果以及程序的本身可以看出智能指针真的很强大我们不再需要像C语言中那么复杂的去操作指针只需要在这里操作对象就可以达到指针操作的目的。同时在程序结束时指针也自动的被释放这样就避免了内存泄漏的问题。同时我们的程序也不允许出现指针的对象的比较与运算这样就不会因为指针的运算导致出现野指针的情况了~~~ 总结 -指针特征操作符-和*可以被重载 -重载指针操作符可以是对象代替指针 -智能指针只能用于指向堆空间中的内存 -智能指针的最大意义在于最大限度的避免了内存泄漏的问题 想一起探讨以及获得各种学习资源加我有我博客中写的代码的原稿 qq1126137994 微信liu1126137994 可以共同交流关于嵌入式操作系统C语言C语言数据结构等技术问题。
http://www.ihoyoo.com/news/58398.html

相关文章:

  • 永久域名注册网站网站建设色系搭配
  • 西安直播室网站建设免费空间如何放网站
  • 网站开发工程师题龙岩kk网
  • 上海商地网站建设公司如何定制微信小程序
  • 保定网站开发公司枣庄三合一网站开发
  • 网站建设开发案例教程视频教程全国企业信息官网网站
  • 励志网站织梦源码.网站链接策略
  • 网站开发 聊天窗口新泰网站制作
  • 河南省内 在哪个网站做商检表定制软件开发服务的收入确认
  • 中科宁波网站建设友情链接购买
  • 网站制作 视频国外域名拍卖网站
  • 济宁网站运营网站建设资料收集
  • 为你做的网站企业运营管理论文
  • 公司网站设计公司优化方案2021版英语
  • 行业网站建设收费明细wordpress 个人说明
  • 工商局网站做年报大型医疗网站建设
  • 外贸 推广网站广东省建设工程执业中心网站
  • 内蒙古建设兵团网站科普网站建设方案书
  • 在什么网站做推广网站建设方案汇报
  • 丹东市住房与城乡建设厅网站最权威的做网站的公司哪家好
  • 优化网站步骤青岛做网站企业排名
  • 有哪些可以建设网站的单位三个年轻人做电影网站800万
  • php做网站需要mysql么营销方案怎么写?
  • 网站家建设培训学校重庆做网站建设
  • 兰州网站搜索优化列表主题wordpress
  • 响应式网站 做搜索推广缺点固安建设网站
  • 天津网站建设天津网站建设哪家有
  • 郑州地区网站建设公司企业形象网站怎么做
  • 有趣的网站代码建立类似淘宝的网站
  • 淘金企业网站建设服务天津广告公司排行榜