您的位置:首页 > 编程语言 > C语言/C++

c++面向对象是怎么做到的

2019-05-24 15:54 1571 查看

继承

编译器在编译时会创建一个虚函数指针执行一张虚函数表,虚函数表类储存着类的函数入口地址,当一个类继承另一个类时只需要继承这个虚函数指针就行了。变量只是简单的复制(编译时)。所以一个类实际上只储存两个信息,定义的变量和虚函数指针。

重载

通过修改虚函数表内的入口地址重载函数,并且只有被改变的函数会被重载,而未改变的函数不变:也就是说基类和派生类共用函数

多态

通过改变符号表实现,在符号表中一个函数以?函数名@参数返回值编码保存。编译器通过编码信息来判断用哪个函数

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: