Boolan-C++面向对象高级编程(下)第一周笔记

1、转换函数

如:

Boolan-C++面向对象高级编程(下)第一周笔记_第1张图片

operator type() cosnt {  };

定义了一个由用户定义的转换,以便把一个类的对象转换成某种其他的类型。

转换函数只能是成员函数,无返回值,空参数。

转换常定义为const形式,因为它并不改变数据成员的值。

在使用过程中,不必显示地调用类型转换函数,它往往是自动被调用的,即隐式调用。

2、智能指针:C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。

3、迭代器:

(1):迭代器类似于指针类型,它也提供了对对象的间接访问;

(2):指针是c语言中就有的东西,迭代器是c++中才有的,指针用起来灵活高效,迭代器功能更丰富些;

(3):迭代器提供一个对容器对象或者string对象的访问的方法,并且定义了容器范围。

4、function-like classes,仿函数:

仿函数,就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。

5、namespace经验(测试时用)


Boolan-C++面向对象高级编程(下)第一周笔记_第2张图片


6、类模板(略)

7、函数模板(略)

8、成员模板:目的是提高灵活性,在外层模板确定后,内层模板还可以自定义


Boolan-C++面向对象高级编程(下)第一周笔记_第3张图片
Boolan-C++面向对象高级编程(下)第一周笔记_第4张图片

9、模板特化

10、模板偏特化

11、Dev C++上C++ 11的开关


Boolan-C++面向对象高级编程(下)第一周笔记_第5张图片

12、复合关系下的构造与析构

构造由内而外,析构由外而内;

13、继承关系下的构造与析构

构造由内而外(基类先构造),析构由外而内(派生类先析构);

14、复合+继承关系下的构造和析构


Boolan-C++面向对象高级编程(下)第一周笔记_第6张图片

你可能感兴趣的:(Boolan-C++面向对象高级编程(下)第一周笔记)