vc++6.0如何改写类的名字

时间:2022-09-07 19:16:22
假设有一个类:

class  Point
{
public:
void output(int x, int y);
};


最后output函数会被改写为:?output@Point@@QAEXHH@Z,@Point是表明它是Point类的函数,QAE表示它是public函数,X表示返回值类型为void,HH表示有两个int类型的参数。
但是类Point会被改写为:??4Point@@QAEAAV0@ABV0@@Z
这是为什么啊?从哪里可以查到改写规则?

7 个解决方案

#1


http://en.wikipedia.org/wiki/Name_mangling
希望能抛砖。

#2


你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!

#3


引用 2 楼 ganpengjin1 的回复:
你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!
拜托你先看看帖子的内容再回帖。。。

#4


引用 3 楼 thefutureisour 的回复:
引用 2 楼 ganpengjin1 的回复:你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!拜托你先看看帖子的内容再回帖。。。
vc++6.0如何改写类的名字
刚下班,没仔细看,参考楼上的连接一下吧!

#5


引用 3 楼 thefutureisour 的回复:
引用 2 楼 ganpengjin1 的回复:你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!拜托你先看看帖子的内容再回帖。。。
不好意思啊,还有就是,方法名称和返回值等的定义规则,我觉得符合它的语法就够了,没有多大必要去深入研究它到底是怎么规定语法问题的

#6


引用 1 楼 ForestDB 的回复:
http://en.wikipedia.org/wiki/Name_mangling
希望能抛砖。

其实是我理解错了,??4Point@@QAEAAV0@ABV0@@Z并不是对类的改写,而是对默认的构造函数的改写。

#7


混个位    ,求 带

#1


http://en.wikipedia.org/wiki/Name_mangling
希望能抛砖。

#2


你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!

#3


引用 2 楼 ganpengjin1 的回复:
你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!
拜托你先看看帖子的内容再回帖。。。

#4


引用 3 楼 thefutureisour 的回复:
引用 2 楼 ganpengjin1 的回复:你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!拜托你先看看帖子的内容再回帖。。。
vc++6.0如何改写类的名字
刚下班,没仔细看,参考楼上的连接一下吧!

#5


引用 3 楼 thefutureisour 的回复:
引用 2 楼 ganpengjin1 的回复:你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!拜托你先看看帖子的内容再回帖。。。
不好意思啊,还有就是,方法名称和返回值等的定义规则,我觉得符合它的语法就够了,没有多大必要去深入研究它到底是怎么规定语法问题的

#6


引用 1 楼 ForestDB 的回复:
http://en.wikipedia.org/wiki/Name_mangling
希望能抛砖。

其实是我理解错了,??4Point@@QAEAAV0@ABV0@@Z并不是对类的改写,而是对默认的构造函数的改写。

#7


混个位    ,求 带