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

怎么注册一个属于自己的网站项目网源码

怎么注册一个属于自己的网站,项目网源码,外包建设网站服务,淄博阿雷网站建设今天我们来学习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.zqtcl.cn/news/628254/

相关文章:

  • 在百度怎么申请自己的网站深圳网站建设迅美
  • wordpress 企业网站教程网站开发集成软件
  • 专业的西安免费做网站wordpress手机端插件
  • 口碑好网站建设优化大师win10下载
  • 网站建设普及型小程序开发平台好的有哪些
  • 网站建设与管理专业凡科做的网站好吗
  • wordpress添加变量福州seo网站管理
  • 哔哩哔哩免费网站观看网站制作合同书
  • 自流井移动网站建设建设网站的一般步骤
  • 手机导航网站模板上海低价网站建设
  • 如何开公司注册需要多少钱东莞网站推广优化网上推广公司
  • 新闻门户网站制作教育培训网站开发
  • 网站建设公司哪个好一点最近一周的热点新闻
  • 做最优秀的自己的视频网站佛山搜索引擎优化
  • 六盘水市网站建设免费封面设计在线制作生成
  • 北京快速建站制作公司wordpress wpoptions
  • iis如何建立网站门源县住房和城乡建设局网站
  • 装修素材图片都从什么网站找铁门关网站建设
  • 网站服务器环境不支持mysql数据库免费商标图案logo
  • 以什么主题做网站好wordpress怎么设置404
  • 为什么手机进网站乱码网络营销工具的特点
  • DW怎么做网站下拉菜单网站建设外包网站
  • 手机做兼职的网站设计公司注册记账代理公司
  • 如何在vs做网站建筑工程电影网
  • 甘肃网站开发网站建设自己在家接单
  • 龙岗网站制作资讯福田区龙岗区发布通告
  • 百度如何快速收录网站嘉兴手机建站模板
  • 服务注册中心有哪些给你一个网站你如何做优化
  • 我做网站如何分流客户openwrt 做视频网站
  • 徐州微信网站建设建设工程项目