1. type_info 的操作

操作 描述
t1 == t2 如果type_info对象t1和t2表示同一种类型,则返回true
t1 != t2 如果type_info对象t1和t2表示不同的类型,则返回true
t.name() 返回一个C风格字符串,表示类型名字的可打印形式
t1.before(t2) 返回一个bool值,表示t1是否位于t2之前,顺序关系依赖于编译器
  • type_info类没有默认构造函数
  • 它的拷贝和移动构造函数以及赋值运算符都被定义为删除的。无法定义或者拷贝type_info类型的对象,也不能为type_info对象赋值。
  • 创建type_info对象的唯一途径就是使用typeid运算符。

1.1 name函数

int arr[10];
Derived d;
Base* p = &d;cout << typeid(42).name() << endl;
cout << typeid(arr).name() << endl;
cout << typeid(std::string).name() << endl;
cout << typeid(d).name() << endl;
cout << typeid(p).name() << endl;

输出结果:

int
int [10]
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >
class Derived
class Base *

C++ Primer 5th笔记(chap 19 特殊工具与技术)type_info 类相关推荐

  1. C++ Primer 5th笔记(chap 19 特殊工具与技术)类成员指针

    1. 成员指针( pointer to member) 指可以指向类的非静态成员的指针. 成员指针指示的是类的成员, 而非类的对象. 类的静态成员不属于任何对象, 因此无须特殊的指向静态成员的指针 指 ...

  2. C++ Primer 5th笔记(chap 19 特殊工具与技术)异常类层次

    1. 类 exception . bad_cast 和 bad_alloc 定 义 了 默 认 构 造 函 数 runtime_error 和 logic_error没有默认构造函数, 但是有一个可以 ...

  3. C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid运算符

    1. typeid运算符(typeid operator) 它允许程序向表达式提问:你的对象是什么类型? typeid表达式的形式是typeid(e),其中e可以是任意表达式或类型的名字,它操作的结果 ...

  4. C++ Primer 5th笔记(chap 19 特殊工具与技术)运行时类型识別RTTI

    1. 运行时类型识别(run-time type identification ) 当我们将这两个运算符用于某种类型的指针或引用, 并且该类型含有虚函数时, 运算符将 使用指针或引用所绑定对象的动态类 ...

  5. C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid

    1. 通常情况下使用 typeid 比较两条表达式的类型是否相同或者比较一条表达式的类型是否与指定的类型相同 Derived *dp = new Derived; Base *bp = dp; // ...

  6. C++ Primer 5th笔记(chap 19 特殊工具与技术)使用 RTTI

    1. RTTI用处 当想为具有继承关系的类实现相等运算符时.对于两个对象来说,如果他们的类型相同并且对应的数据成员取值相同,则我们说这两个类是相等的. class Base {friend bool ...

  7. C++ Primer 5th笔记(chap 19 特殊工具与技术)定位 new 表达式

    1. 定位 new (placement new) 1.1 起因 内存分配和初始化分离开 Placement new allows you to construct an object in memo ...

  8. C++ Primer 5th笔记(chap 19 特殊工具与技术)malloc 函数与 free 函数

    void *operator new (size_t size) {if (void *mem = malloc (size) )return mem;elsethrow bad_alloc ( ); ...

  9. C++ Primer 5th笔记(chap 19 特殊工具与技术)控制内存分配

    1. new void operator new (size_t, void ) ;//不允许重新定义这个版本 string *sp = new string("a value") ...

最新文章

  1. SAP SD基础知识之特殊的业务交易
  2. JavaEE Web开发之Servlet篇
  3. 吴恩达 coursera ML 第十七课总结+作业答案
  4. mysql5.5的方言_mysql方言问题
  5. JDK 7和JDK 8中大行读取速度较慢的原因
  6. Windows应用程序启动命令汇总
  7. js layui跳转页面_layui自己添加图片按钮并点击跳转页面的例子
  8. 减速箱箱体尺寸是怎样计算的_皮带输送机减速机漏油、油温高可不能小觑,原因及处理方法教给你...
  9. Servlet 原理概述
  10. 无法远程连接到计算机 凭证,win10系统凭证不工作导致远程桌面连接不了的解决办法...
  11. 前端学习--PS移动和选区工具
  12. matlab混沌指数的计算,matlab实现混沌系统最大李雅普诺夫指数
  13. 咪咕版kindle利用“隐藏浏览器”打开微信读书
  14. yolov5s.yaml中各参数作用意义及使用netron工具来可视化yolov5s的结构
  15. 《数据仓库与数据挖掘教程》ch01绪论 章节整理
  16. 用for循环输出俄文的“字母表”
  17. HitPaw Photo Enhancer v1.0.1 照片清晰放大
  18. GitHub学生包申请(学生认证)教程,国内外主流云主机平台对比
  19. html 签到功能,从一个签到功能(日历)到 js Date 类型的全了解
  20. 首届中国富豪,谁笑到了最后?

热门文章

  1. 【Scratch】青少年蓝桥杯_每日一题_6.09_密码
  2. linux 本地做yum源,linux——制作本地yum源
  3. access2003安装包百度云_《逗比羊电影》_逗比羊电影最新版下载
  4. 数据机房局部过热与节能降耗解决方案
  5. 浅谈商业银行绿色数据中心建设
  6. 计算机网络管理考核办法,开滦医院计算机网络管理考核细则
  7. 成功解决 ValueError: fill value must be in categories
  8. 成功解决 Exception: URL fetch failure on https://s3.amazonaws.com/img-datasets/mnist.npz: None -- [Errno
  9. AI:2020年6月23日北京智源大会演讲分享之机器学习专题论坛——09:45-10:25邢波教授《A Blueprint of Standardized and Composable ML》
  10. 卷积神经网络(cnn)的体系结构