之前做过一个测试,在一个类中定义一个virtual修饰的函数时,sizeof这个类,发现类的大小多了恰好一个指针的字节大小,当初不明白,只是记住有这么一个特性.后来,发现它就是c++编译器给我们添加的vptr指针. 当类中声明虚函数时,编译器会在类中生成一个虚函数表: 虚函数表是一个存储成员函数指针的数据结构: 虚函数表是由编译器自动生成与维护的: virtual成员函数会被编译器放入虚函数表中: 存在虚函数时,每个对象都有一个指向虚函数的指针(vptr指针) 在实现多态的过程中,父类和派生类都…