当一个父类的指针 指向一个子类的对象,如果父辈的析构函数没有定义为virtual 虚函数,在执行delete 释放父类指针的时候,子类的虚函数则不会调用,导致内存泄漏。但是类的析构函数并不是一定要定义为virual!多态:virtual 虚函数,子类重写父类虚函数子类的虚函数表直接复制父类的虚函数表如果子类重写了父类的某个虚函数那么就替换复制的虚函数表如果子类增加了新的虚函数,就把虚函数添加到虚函数表的尾部
/d1 reportSingleClassLayoutSon final :class A final{}//A 不可以被继承class B{ virtual void func1() final ; //该虚函数可以被继承 但是不能被重写了}Override: 覆盖重写子类中告诉代码编辑人员,这个虚函数是重写的父类的虚函数。如果父类不存在这个虚函数则报错。只需要在函数声明的时候使用。
#include <map>#include <algorithm>关键字:map、inster、earse、pair、iterator、const_iteratortemplate<class T>void printMap_Vector(T & tmp_con) //模板函数,输出map与保存map元素迭代器的vector/*********************************************************