1.多态的原理
多态的原理:一开始是子类继承父类的函数入口,没法执行子类函数,但是给父类函数加了virtual关键字(虚函数)以后,子类重写父类的虚函数即执行子类的函数了
动态多态满足的条件:
有继承类的关系
子类重写父类的虚函数
动态多态使用:
父类的指针或者引用子类对象
2.纯虚函数
多态中,父类中的虚函数实现起来是毫无意义的,主要用子类的重写的内容
语法:virtual 返回值类型 函数名(参数列表)= 0;一般都在父类函数中
当类中有了纯虚函数 ,这个类也叫作抽象类
抽象类:
无法实例化对象
抽象类子类必须重写父类的纯虚函数,否则也是抽象类
子类的virtual void public要做具体的实例化,不能初始化为0。
3.栈区:
形参和局部变量
不能返回存储局部变量的地址!!
函数调用完后就会自动释放,为什么会有一次传数据呢?因为编译器会做一次保留数据
4.堆区
主要利用new在堆区中释放内存
5.函数重载
满足条件:
1,同一个作用域下(全局变量域)
2.函数名称相同
3.函数参数型不同或者个数不同或者顺序不同
const表示只读
6.左移运算符
7.构造函数和析构函数
构造函数:初始化
析构函数:清理
如果我们自己不提供构造和析构,编译器会自动提供,但是提供的构造和析构函数是空实现!
拷贝构造函数:
构造函数的调用:
8.函数模板
法一:自动型推导
法二:显示指定型
注意事项:
自动类型推导,必须推导出一致的数据类型T才可以使用
模板必须要确定出T的数据类型
9.友元
友元的目的是让一个函数或者类访问另一个类中私有成员
友元的三种实现
(1)全局函数做友元
在public的上面
(2)类做友元
(3)成员函数做友元
10.vector容器
指针的使用
(*it).m_Name等价于it->m_Name



