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 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:将派生类的指针转换为基类的指针,沿层次向上转换。

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

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

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

你可能感兴趣的:(C++primer,plus中文版习题,c++,开发语言)