C++primerplus总结

一.string和标准模板库

1.智能指针

auto_ptr 和 unique_ptr的区别

1.复制和赋值会改变资源的所有权,将一个auto_ptr对象管理的资源转移到另一个auto_ptr对象

2.在STL容器中存在风险,容器内的元素必须支持可赋值和可赋值

unique_ptr 

1.无法进行左值unique_ptr复制构造,可以进行右值unique_ptr复制构造

2.在容器中保存指针是安全的

 shared_ptr

复制拷贝计数加1,但析构时,计数减1,如果计数为0,代表没有指针指向这块内存,然后将其释放

2.vector

1.list<int> li

2.li.unique()

3.li.insert(li.end(), ar, ar + n)

二.友元,异常 

1.友元

1.全局函数做友元

2.类做友元

3.成员函数做友元

2. thorw和return

thorw抛出异常时,会执行堆栈展开直到找到一个匹配的异常处理语句,而return将直接 返回,不会执行函数后面的代码

3. static_cast运算符和dynamic_cast

static_cast:隐式转换时使用,允许向上转换和向下转换。

dynamic_cast:将派生类的指针转换为基类的指针,沿层次向上转换。

三. C++代码重用

1.虚基类和非基类的区别

        非虚基类的继承关系中,多个基类的共同祖先会存在多个相同的副本,而虚基类中共同的祖先只会保存一个副本。

        此外,使用非虚基类时,派生类从不同的基类那里继承了多个同名的数据成员,如果没有类名进行限定,将导致二义性

 四.类继承

1.静态联编和动态联编

静态联编:编译器在编译过程中将会根据具体情况选择和确定函数代码,这样的操作称为联编

动态联编:虚函数的引入导致在编译阶段编译器无法确定调用者是何种对象,因此编译阶段将无法完成联编的工作。推迟到运行阶段。

类的构造函数不能是虚函数,析构函数应该为虚函数,友元函数不能是虚函数。

2. 继承中的知识点

对于类来说,protected和private类似,类外无法访问protected和private

对于继承来说,protected和public类似,派生类无法直接访问private而可以访问protected和public

 3.派生类无法从基类继承什么?

基类的构造函数,析构函数,复制运算符,友元函数和友元类

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未央吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值