"Z4mainE2"是什么意思?
What does "Z4mainE2" mean?
#include<iostream>
#include<typeinfo>
using namespace std;
int main(){
class c1{
public:
int a ;
};
c1 obj1;
cout<<typeid(obj1).name();
}
我在 ideone 上运行它,typeid.name()
返回Z4mainE2c1
.很明显,c1
是类的名称,但Z4mainE2
是什么。为什么它不只显示类型名称?
Z4mainE2
是"名称重整"的结果。基本上,C++编译器是围绕链接器模型设计的,该模型不直接支持函数重载、运算符甚至类成员等内容。为了支持C++的各种非 C 功能,编译器生成的目标代码会向生成的名称添加特殊序列。虽然损坏的名称通常对程序员不可见或重要,但某些平台上的typeinfo
对象会直接公开它们。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 当我们说在执行程序时将操作系统的控制权传递给main()函数时,我们的意思是什么
- 这句话在c++中的意思是什么
- 这个typedef的意思是什么
- 这句话的意思是什么
- 意思是什么
- 这个句法的意思是什么?