还有 1 个小时就要面阿里了,网上学习一下 c++ 的一些特性,做下笔记
多态
分为 静态多态 和 动态多态
前者在 C++ 里体现为函数重载,这个在编译器可以确定(联想一下编译原理课上写的 decaf 编译器中的语义分析)
后者在 C++ 里体现为基类对象调用子类的函数,用虚表实现的(同样也联想一下编译原理课写中的语义分析以及虚表的实现)
多继承关系的话,会将基类的虚表指针依次放到该子类虚表里
纯虚函数
类比 Java 的 implements
,也就是有纯虚函数的类不能被实例化。
class A {
public:
virtual void f()=0;
};
擦发现了个网上总结 https://github.com/huihut/interview 不想写了