zoukankan      html  css  js  c++  java
  • c++智能指针 及异常简介

    Shared_ptr

    包含头文件memory c++智能指针,强指针

    Shared_ptr<CA> ptr(new CA)

    Shared_ptr<CB> ptr(new CB)

    Shared_ptr<CA> ptrA0 =  ptrA

    Int  nVal = ptrA->GetVal();

    nVal = ptrB->GetVal();

    循环引用

    循环引用会带来内存泄漏,如果程序确定会出现循环引用使用弱指针,否则一般情况不用

    异常

    宜昌市意料之外的情况

    C++异常处理使得错误的发现错误处理分开

    c++异常处理使用 try catch throw 关键字可可能抛出异常的代码放到try语句块里面,使用catch 来接受try里面抛出的异常,使用throw 来抛出异常

    throw可以抛出所以类型的对象包括类对象

    throw语句执行后,程序执行流程跳出try语句块,转向catch语句块查找类型匹配的catch语句块并执行

    如果一个异常被抛出,但是没有catch块来接收,程序最终会调用terminateterminate里面会调用abort退出程序

    可以使用set——terminate来替换默认的terminate函数,自己写的函数一定要调用abort或者exit

    异常处理不会对类型进行隐式转化,类型要求严格匹配

    Try catch 可以嵌套,try抛出 异常,会被自己的catch块接收,如果内部try块中没有异常处理,没有被接受,会一层一层往外找catch块接收

    异常使用...来接受所有异常,但无法分辨

    异常与对象

    Try中的对象在碰到异常的时候会被析构

    构造中抛出异常,不会被调用析构

    析构不能抛出异常

    Noexcept

    关键字承诺不抛出异常,如果抛出不会被接受。

    学如逆水行舟,不进则退。 博客园技术交流群 群 号:1073255314 (本群没人,刚刚建立 -_-!!! )
  • 相关阅读:
    dir for RequestHandler and request
    python globals和locals
    Spring AOP(通知、连接点、切点、切面)
    Elasticsearch和Head插件安装(转)
    服务发现
    全面的软件测试( 转)
    软件开发项目人员配置
    阿里云oss缩略图如何产生读取 超简单 不看后悔(转)
    Elasticsearch模糊查询
    小米Pro 安装苹果系统
  • 原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13612704.html
Copyright © 2011-2022 走看看