-
隐藏: 父子关系、同名, 子类对象只能调用子类的函数 调用父类中的同名成员/函数,必须用类名::的形式 即使形参不同也不行 覆盖: 如果未在子函数中定义同名虚函数,那么子类虚函数表中会写入父类虚函数的入口地址,如果定义了会覆盖父类的地址。查看全部
-
【子类,定义了自己的虚函数,并继承父类】父类情况不变;子类的虚函数表与之前一样,但是指向自己函数的入口(覆盖了父类)查看全部
-
【子类,不定义虚函数,继承自父类】含有自身的虚函数表,但父类函数calcArea()指向父类的函数入口。查看全部
-
【父类,含虚函数】实例化Shape,除了m_iEdge,还有一个【虚函数表指针】。指向一个虚函数表,与Shape类定义同时出现。 父类的【虚函数表】只有一个,通过父类实例化的所有对象虚函数表指针相同以确保指向自己的虚函数表。 虚函数表中定义的指针,是函数的【入口地址】。然后找到【虚函数】。查看全部
-
函数指针: 通过指针指向函数地址开头(入口)查看全部
-
virtual的使用限制: 1.不能修饰普通函数/全局函数 2.静态成员函数不能是虚函数 3.不能修饰内联函数查看全部
-
虚析构函数查看全部
-
多态中存在内存泄漏的问题。 如果用父类指针指向子类对象,并通过父类指针操作子类虚函数时,销毁时无法消除子类的内存。查看全部
-
通过虚析构函数,解决在动态多态当中,内存泄漏的问题。查看全部
-
把想实现多态的成员函数前面加virtual关键字实现虚函数 定义子类的同名函数时也要加virtual(系统会自动加) main函数中调用到的将是子类的同名函数查看全部
-
用父类指向子类,调用到的是父类的同名函数查看全部
-
对不同的对象下达相同的指令、却有着不同的操作。 动态多态必须以封装和继承为基础。查看全部
-
早绑定查看全部
-
dynamic_cast注意事项:查看全部
-
try与catch是一对多的关系查看全部
举报
0/150
提交
取消