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
拜托你先看看帖子的内容再回帖。。。
#4
刚下班,没仔细看,参考楼上的连接一下吧!
#5
不好意思啊,还有就是,方法名称和返回值等的定义规则,我觉得符合它的语法就够了,没有多大必要去深入研究它到底是怎么规定语法问题的
#6
其实是我理解错了,??4Point@@QAEAAV0@ABV0@@Z并不是对类的改写,而是对默认的构造函数的改写。
#7
混个位 ,求 带
#1
http://en.wikipedia.org/wiki/Name_mangling
希望能抛砖。
希望能抛砖。
#2
你的类型在标准库中已经存在,跟自己写个string类一样的,把名称稍作修改!
#3
拜托你先看看帖子的内容再回帖。。。
#4
刚下班,没仔细看,参考楼上的连接一下吧!
#5
不好意思啊,还有就是,方法名称和返回值等的定义规则,我觉得符合它的语法就够了,没有多大必要去深入研究它到底是怎么规定语法问题的
#6
其实是我理解错了,??4Point@@QAEAAV0@ABV0@@Z并不是对类的改写,而是对默认的构造函数的改写。
#7
混个位 ,求 带