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

无备案网站可以做百度推广wordpress删除管理站点链接

无备案网站可以做百度推广,wordpress删除管理站点链接,专业网站建设排名,出国做博后关注哪些网站今天我们依然暂时不讲解数据结构里面的内容#xff0c;我们来复习一下昨天学的模板技术用于数据结构编程的思想#xff0c;给出一个模板技术的实例#xff1a;智能指针的应用。喜欢看我分享的加我q:1126137994 加我共同学习交流各种技术。 为什么会引入智能指针呢#xff…今天我们依然暂时不讲解数据结构里面的内容我们来复习一下昨天学的模板技术用于数据结构编程的思想给出一个模板技术的实例智能指针的应用。喜欢看我分享的加我q:1126137994 加我共同学习交流各种技术。 为什么会引入智能指针呢原因是在软件开发中最可恨最常见的BUG内存泄漏是什么导致内存泄漏 -动态申请堆空间用完后不归还 -C语言中没有垃圾回收机制 -指针无法控制堆空间的生命周期 那么引入智能指针后智能指针能做什么呢 -指针生命周期结束时主动释放堆空间 -一片堆空间最多只能由一个指针标识 -杜绝指针运算和指针比较 智能指针的设计方案 -通过类模板描述指针的行为 *能够定义不同类型的指针对象 -重载指针特征操作符-和* *利用对象模拟原生指针的行为 重要说明智能指针只能用来指向堆空间中的单个对象或者变量 下面给出代码示例我主要做的是在QT编译器中建立了一个C工程库以后所有的数据结构的代码都在这个库里实现 头文件SmartPointer.h #ifndef SMARTPOINTER_H #define SMARTPOINTER_Hnamespace DTLib {template typename T //开始泛型编程 class SmartPointer { protected:T* m_pointer; //T类型指针public:SmartPointer(T* p NULL){m_pointer p; //首先将m_pointer置空}SmartPointer(const SmartPointerT obj) //拷贝构造函数实现一片堆空间只能由一个指针标识{m_pointer obj.m_pointer;const_castSmartPointerT(obj).m_pointer NULL;}SmartPointerT operator (const SmartPointerT obj){if (this ! obj) //判断是否自赋值不能做比较运算this当前的对象{delete m_pointer;m_pointer obj.m_pointer;const_castSmartPointerT(obj).m_pointer NULL;}return *this; //可以支持连续的赋值}T* operator- () //重载-操作符让T对象可以代表指针m_pointer{return m_pointer;}T operator* () //重载*操作符{return *m_pointer;}bool isNull() //判断是否销毁指针{return (m_pointer NULL);}T* get() {return m_pointer;}~SmartPointer() //析构函数很重要对象的生命周期结束时主动的销毁指针{delete m_pointer;}};}#endif // SMARTPOINTER_Hmain.cpp函数 #include iostream #include SmartPointer.husing namespace std; using namespace DTLib; //使用我们定义的命名空间class Test { public:Test() {cout Test() endl; //测试试验仅打印语句}~Test(){cout ~Test() endl; //测试试验仅打印语句} };int main() {SmartPointerTest sp new Test(); //声明一个智能指针sp指向Test对象所对应的的堆空间//SmartPointerTest nsp; //又定义了一个智能指针//nsp sp; //该智能指针指向sp指向Test对象所对应的的堆空间//cout sp.isNull() endl;//cout nsp.isNull() endl;return 0; } 运行上面程序显示结果为 可以看出我们并没有主动去归还申请的堆空间而是程序自动的调用了析构函数销毁了Test对象所对应的申请的堆空间。 那么我们将注释掉的那几行加上编译运行 可以看出sp这个指针已经为空nsp指针不为空指向的是Test对象所对应的的堆空间最后又将这个Test对象析构销毁堆空间。 当然如果我们在main函数里加上一个nsp的运算编译就会报错因为我们已经禁止了智能指针的比较与运算。 那么到此为此我们已经实现了智能指针的实例。 总结 1.指针特征操作符-和*可以被重载 2.重载指针特征符能够使用对象代替指针 3.智能指针只能用于指向堆空间中的指针 4.智能指针的意义在于最大程度的避免内存问题 想一起探讨以及获得各种学习资源加我有我博客中写的代码的原稿 qq1126137994 微信liu1126137994 可以共同交流关于嵌入式操作系统C语言C语言数据结构等技术问题。
http://www.zqtcl.cn/news/242191/

相关文章:

  • 四川省和城乡建设厅网站怎么做网站淘宝转换工具
  • 网站单页支付宝支付怎么做的排名优化公司口碑哪家好
  • 淄博网站制作服务推广做网站服务器配置
  • ppt做的好的有哪些网站有哪些广州品牌型网站建设
  • 怎么学做一件完整衣服网站网站 相对路径
  • 十大wordpress主题江门seo排名优化
  • 石家庄网站搭建定制在百度上如何上传自己的网站
  • 南宁建设厅官方网站福州中小企业网站制作
  • 模板网站建设平台昆山专业网站建设公司哪家好
  • 百度指数的数值代表什么网站建设优化的作用
  • 河南便宜网站建设价格wordpress页面图片插件
  • 网站生成wordwordpress汽车主题公园
  • 网络营销成功的案例及其原因湖南网站seo地址
  • 潍坊企业网站模板绩效考核表 网站建设
  • 建设企业网站公做深度游网站 知乎
  • 可以做h5的网站韶关网站建设制作
  • 企业网站建设的基本要素有哪些通知模板范文
  • 网站建设计划书范本住房和城乡建设部网站事故快报
  • 西安网站建设公司排家居用品东莞网站建设
  • 网站建设评比文章上海手机网站建设价格
  • 微信手机网站三合一建筑工程网络计划方法
  • 网站上文章分享的代码怎么做的建在线教育网站需要多少钱
  • 如何自己弄网站怎么用手机做网站服务器
  • 如果我的网站被百度收录了_以后如何做更新争取更多收录有做不锈钢工程的网站
  • 适合做公司网站的cms东莞阳光网站投诉平台
  • 建设一个网站的意义印刷东莞网站建设技术支持
  • 80端口被封怎么做网站个人网站做支付接口
  • 如何区分网站开发语言建设网站地图素材
  • 建网站的流程怎么投稿各大媒体网站
  • 品牌推广的步骤和技巧专业seo培训学校