2 silencecarrot SilenceCarrot 于 2015.07.23 17:58 提问

C++中成员函数、静态成员函数、虚函数都是怎么存储的?他们哪一个先被调用?
c++

今天参加了一个面试,面试官问道这个问题:C++中成员函数、静态成员函数、虚函数都是怎么存储的?他们哪一个先被调用? 对于这个问题我还真没有总结过,答得不是很好,求大神能不能回答一下?或者给点资料看看。

3个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.23 18:03
已采纳

成员函数、静态成员函数、虚函数
都是存储在独立的位置,跟类的对象存储空间是分隔的,这样对象都是通过函数地址来访问。
哪一个被调用取决于调用对象是类,还是类实例,还是类的对象指针,然后决定是哪个函数调用

SilenceCarrot
SilenceCarrot 回复oyljerry: 嗯,好的,谢谢~~
2 年多之前 回复
oyljerry
oyljerry 虚函数是通过虚函数表来找,不同函数会有一些信息来表示它是属于那个类等
2 年多之前 回复
oyljerry
oyljerry 回复SilenceCarrot: 代码段,所有的代码都在代码段,只是说代码段里面还会有一些细分
2 年多之前 回复
SilenceCarrot
SilenceCarrot 谢谢你的回答,但是能不能说的具体一点的,我主要问的是他们是不是都是存储在代码段,但是静态、非静态、虚的,都是存在一起嘛?没有一点规则嘛?
2 年多之前 回复
cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.23 23:34
SilenceCarrot
SilenceCarrot 这个是我想要的,谢谢你呀。
2 年多之前 回复
SilenceCarrot
SilenceCarrot 在c++中类的成员函数都是保存在静态存储区中的 ,那静态函数也是保存在静态存储区中的,他们都是在类中保存同一个惫份。
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2015.07.23 18:01

C++ 静态成员函数
C++静态成员函数
C++静态成员和函数
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片