我想知道typeid和typeof之间的区别是C。这是我知道的:

> typeid在type_info的文档中提到,它在C头文件typeinfo中定义。

> typeof在C的GCC扩展中和在C Boost库中定义。

另外,这里是我创建的测试代码测试,我发现typeid不返回我的预期。为什么?

main.cpp

#include

#include //for 'typeid' to work

class Person {

public:

// ... Person members ...

virtual ~Person() {}

};

class Employee : public Person {

// ... Employee members ...

};

int main () {

Person person;

Employee employee;

Person *ptr = &employee;

int t = 3;

std::cout << typeid(t).name() << std::endl;

std::cout << typeid(person).name() << std::endl; // Person (statically known at compile-time)

std::cout << typeid(employee).name() << std::endl; // Employee (statically known at compile-time)

std::cout << typeid(ptr).name() << std::endl; // Person * (statically known at compile-time)

std::cout << typeid(*ptr).name() << std::endl; // Employee (looked up dynamically at run-time

// because it is the dereference of a pointer

// to a polymorphic class)

}

输出:

bash-3.2$ g++ -Wall main.cpp -o main

bash-3.2$ ./main

i

6Person

8Employee

P6Person

8Employee

c语言typeid的用法,‘typeid’对’typeof’在C相关推荐

  1. java 泛化_Java语言class类用法及泛化(详解)

    这篇文章主要介绍了Java语言class类用法及泛化(详解),大家都知道Java程序在运行过程中,对所有的对象进行类型标识,也就是RTTI.这项信息记录了每个对象所属的类.虚拟机通常使用运行时类型信息 ...

  2. Go语言MD5加密用法实例

    Go语言MD5加密用法实例 本文实例讲述了Go语言MD5加密用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import (     "crypto/md5" ...

  3. C语言atoi()函数用法

    C语言atoi()函数用法 头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * s ...

  4. 6s在c语言中的用法,C语言中assert的用法讲解

    assert是指编写代码时做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式.下面是小编为大家整理的C语言assert的用法讲解,欢迎参考~ assert宏的原型定 ...

  5. ASP脚本语言之vbscript用法

    常用的脚本语言有 Javascript 和 VBscript . 使用哪种语言需先设定.如上节代码中的<%@ LANGUAGE="JSCRIPT"   ...    %> ...

  6. C 语言do with,中考英语易错题十七、语言交际的用法

    十七.语言交际的用法 [中考链接] -Do you mind if I record your lecture? -__________. Go ahead. A. Never mind B. No ...

  7. fclose在c语言中的作用,c语言fcloseall函数用法实例介绍

    c语言fcloseall函数用法实例介绍.fcloseall函数的返回值,函数 fcloseall() 将所有打开的流与其底层的文件或功能集合关闭.任何缓冲的数据都将首先被写入,使用 fflush(3 ...

  8. C语言 qsort的用法 模拟EXCEL排序

    C语言 qsort的用法 模拟EXCEL排序 题目 Excel可以对一组记录按任意指定列排序.现请编写程序实现类似的功能. 输入 输入的第一行包含两个正整数N(<= 10^5)和C,其中N是记录 ...

  9. c语言关于break的程序,c语言break的用法

    小编为大家整理了c语言break的用法.希望对你有帮助哦! 一.程序源代码: #include void main() { char letter; printf("please input ...

最新文章

  1. 快速构建Spring Cloud工程
  2. mysql修改字段为现在时间_mysql如何修改字段自动生成时间
  3. 留恋 nyoj 854
  4. Win7安装OnlyOffice(不使用Docker)
  5. JQuery--事件
  6. php和js序列化,PHP中serialize和json序列化与反序列化的区别
  7. Exception from HRESULT: 0x800A03EC
  8. linux mount 默认读写,Linux mount 修改文件系统的读写属性
  9. tensorflow精进之路(二十一)——使用slim模型对图像识别与检测(上)(Inception_ResNet_v2模型)
  10. linux 创建用户_用 Bash 脚本发送新用户帐户创建的邮件 | Linux 中国
  11. 银联证书下载及导出流程
  12. IAR移植FreeRTOS
  13. 单片机应用系统设计技术——单片机出租车计费器
  14. 20款常用的商业智能(BI)工具分享(最新)
  15. html下载链接引入element-ui
  16. 阿里云盘 Mac客户端(附mac/win版)v2.1.6中文内测版
  17. 通过Windows批处理脚本批量修改DNS
  18. 说出至少4种vue当中的指令和它的用法?
  19. XAF 与 CIIP
  20. golang gorilla websocket例子

热门文章

  1. 小觅相机初始化(标准版)
  2. 3阶魔方破解之层先法
  3. IT项目实施流程及每个阶段输出的文档
  4. 基于图灵机器人的微信自动回复(个人娱乐)
  5. 转载的优酷视频不能自动播放和全屏的解决方法
  6. cyrus-sasl
  7. 基于PHP+小程序(MINA框架)+Mysql数据库的共享停车位预约小程序系统设计与实现
  8. 前端动态路由实现(reat/vue/link)
  9. 南京大学计算机考研复试报录比,南京大学考研哪些专业比较冷门相对好考,一张报录比表看透~...
  10. 基于视频的实时人脸识别(含代码)