4.1.3 名称的特殊处理
创始人
2024-02-02 04:19:24

名称的特殊处理

类成员变量的名称处理:
对于类的数据成员,其的名称经过编译器的处理会在程序员定义名称的后面再加上class的名称,进而形成独一无二的命名,例如下面的的成员变量x再经过类处理后有可能为x_7Point3d

class Point3d {
private:double x{};
};

编译器之所以这么做,原因在于对于如下的派生操作,编译器内部形成的伪码可能如下注释的伪码所示。这样不管需要取哪一个x,通过name mangling处理后,都可以绝对清楚的指出。

class Point4d:public Point3d{
private:double x;
};// class Point4d{
// private:
//     double x_7Point3d;
//     double x_7Point4d;
// };

类函数对象的名称处理:
但是由于类成员函数支持重载,所以不能像上述对成员变量的处理一样只加上类名,需要加上额外的一些参数。对于一个类成员函数而言,其全局名称由类名、函数名称、参数个数、参数类型共同决定。
例如如下的函数,通过g++编译运行结果会指示类成员函数的地址为0x4011a2。通过nm命令查看编译后的二进制文件,可以发现在ox4011a2出存储的函数名为_ZNK7Point3d9normalizeEv,这即是通过name mangling得到的结果,但是因为目前没有统一的标准,因此不同编译器的处理方法会不太一样。
Alt

Alt

Alt

Point3d p(1, 2, 3);
auto p2 = p.normalize();
printf("成员函数normalize的地址: %p\n", &Point3d::normalize);

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...