课程
/后端开发
/C++
/C++远征之多态篇
为什么成员数据有内存存放,虚成员函数能通过虚函数指针=》虚函数表找到 普通成员函数至少有函数指针吧 不然怎么找到实现呢?如果有为什么对象大小只有数据成员的大小 奇怪
2017-02-12
源自:C++远征之多态篇 3-1
正在回答
因为,内存中有程序代码区,堆区,栈区,全局区(静态区),文字常量区。在定义一个类时,它的成员函数,虚构函数,构造函数就被存入程序代码区,供所有对象调用。
在实例化一个类的对象时,并没有拷贝类的函数,仅仅存入了数据成员,因此类的对象中有数据成员,然而当用父类的指针指向子类的对象时,调用同名函数时会调用父类的同名函数,当想要调用子类的同名函数引入了虚函数,
当调用普通成员函数时,计算机可以在代码区识别该函数,无需用函数指针,因而,在对象中只有数据成员的大小。
qq_随心所欲_9 提问者
举报
本教程将带领大家体会面向对象三大特性中的多态特性