- 博客(2)
- 收藏
- 关注
原创 关于c++多态性实现的理解过程(给自己看的总结,比较跳跃)
之前在刚接触c++多态性的时候,关于为什么基类指针指向派生类对象,调用的是派生类的虚函数而不是基类的虚函数这一点,脑子的第一反应就是指针。用一个东西做多件事这种抽象性,很明显就是指针的行事作风。但是又没个具体的概念。如果用函数指针,怎么实现呢?很简单,假设虚函数的变量名都对应一个成员变量,在基类的函数指针成员变量里填上对应函数的入口地址,派生类填上另一个函数地址,那就实现多态性了嘛。再想想
2017-04-21 21:27:03 372
原创 为什么构造函数中调用的虚函数不具有多态性?
effective c++ 的item9中提到,不要在构造函数中调用虚函数,因为此时的虚函数不具有多态性。 给出的原因是说构造基类的时候,还未初始化派生类的成员变量。而网上很多说法说是虚表未建立。其实,结合类的内存模型,再稍加分析,很容易可以找出更具体的原因。具有虚函数的类的内存结构里除了非静态变量,还有一个虚指针,指向了虚表。 网上说的虚表为建立的说法是不合适的,因为同一个类的所有实例共
2017-04-21 21:13:35 1212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人