基本知识点
- 在C++中,.h文件只允许extern Variable、function prototypes、Class\Struct declaration。.cpp文件是函数的主体。
- #include<.h>,去当前目录寻找.h文件。#include<**.h>去系统目录中寻找.h文件
- 标准头文件结构,为了解决include交叉引用带来的问题
- 函数是属于类,不是属于对象
- 构造函数用来初始化类的成员,析构函数是在对象被回收之前,做一些释放的准备工作。对象离开它所在的scope,会自动调用析构函数。
- new & delete
- 在C++中,Class和Struct都是表达类的,他们之间的区别是Class是默认private的,Struct是默认Public的
- 初始化列表 给成员变量初始化在构造函数之前就会执行
###OOP
1 组合
- 所有嵌入对象的初始化应该在初始化列表中初始化
- 所有嵌入对象应该private
2 继承
- 子类可以继承父类所有的属性和方法,但对于父类的私有方法和属性只是拥有,而不能直接使用。
- 如果父类有带参数的构造方法,子类实例化是需要在初始化列表当中显示调用父类的初始化方法
- 如果父类当中有overloading 函数,在子类当中出现了和父类相同的函数,则子类的函数会把父类的函数隐藏。这是C++的特性
3 函数重载
函数名相同,参数列表不同的函数
4 内联函数
- 关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。建议把inline函数的定义放到头文件中。
- 定义在类声明之中的成员函数将自动地成为内联函数
- 使用inline函数的场景:①函数块非常短,通常几行。②函数块反复调用,比如循环中的函数
- 不适用inline函数的场景:①函数亏很长。②函数是递归的