c++filt 不会分解 typeid 名称

2023-12-25

我正在 GCC 上运行代码C++编译器,输出 type_info::name:

#include <iostream>
#include <typeinfo>

using namespace std;

class shape {
   protected:
   int color;
   public:
   virtual void draw() = 0;
   };


class Circle: public shape {
   protected:
   int color;
   public:
   Circle(int a = 0): color(a) {};
   void draw();
   };

   void Circle::draw() {
   cout<<"color: "<<color<<'\n';
   }

class triangle: public shape {
   protected:
   int color;
   public:
   triangle(int a = 0): color(a) {};
   void draw();
   };

   void triangle::draw() {
   cout<<"color: "<<color<<'\n';
   }

int main() {
   Circle* a;
   triangle* b;
   cout<<typeid(a).name()<<'\n';
   cout<<typeid(b).name()<<'\n';
   }

但我得到以下结果:

P6Circle
P8triangle

并在分解时,

./shape | c++filt  

我得到与之前相同的输出。还有其他解决方案吗?


你需要使用c++filt -t对于类型,以下应该有效:

./shape | c++filt -t

the c++filt 的手册页 http://linux.die.net/man/1/c++filt说以下内容-t:

尝试分解类型和函数名称。默认情况下禁用此功能,因为重整类型通常仅在编译器内部使用,并且它们可能与非重整名称混淆。例如,被视为重整类型名称的名为“a”的函数将被分解为“signed char”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++filt 不会分解 typeid 名称 的相关文章

随机推荐

  • 使用 ReSharper 突出显示所选对象的所有出现位置

    我曾经使用 RockScroll 或 MetalScroll 但是当我开始使用 ReSharper 时 我的 RockScroll 开始出现一些错误 好吧 这是另一个讨论的范围https stackoverflow com question
  • 返回值或传递指针作为参数?

    我了解到 为了通过调用函数来访问或修改变量的值 我们需要将指针作为参数传递 如下所示 include
  • 即使未安装可选依赖项,Python setuptools 也会安装控制台脚本

    我目前正在开发一个包 并对 setuptools 感到困惑 该包包含许多依赖项 有了这些依赖项 可以通过 cli 执行多个脚本 E G gt main pkg gt main pkg which needs dep1 gt main pkg
  • 如何使用 C# 检查邮件已读或未读属性 (Lotus Notes)

    我想使用 C 检查邮件已读和未读属性 即想检查邮件是否被阅读 使用Domino dll 未读标记表不会通过 后端类 这是您最有可能在 Domino dll 中使用的类 公开 这可以通过较低级别的 C API 获得 需要处理更多的工作 但如果
  • 带有 PL/pgSQL 的 CRC32 函数

    如何计算 32 位循环冗余校验 CRC 32 作为 PostgreSQL 中的函数 方法与MySQL http dev mysql com doc refman 5 7 en mathematical functions html func
  • decltype(..., void()) 和 void_t 之间的区别

    上次我发现了许多关于 SFINAE 的答案 建议使用void t帮手 但我似乎不明白它有什么特别之处 decltype void 考虑这个例子 template
  • 类继承,强制新类实现某些功能

    好吧 我正在搞一些事情 特别是接口 假设我有一个类 猫 其基础为 动物 动物有一个方法 如下所示 public virtual void Walk Do walking stuff 所以 Cat 会用以下内容覆盖它 public overr
  • 如何为同源的 iframe 提供单独的 sessionStorage

    标准 W3C 标准对 localStorages 的描述如下 不同的作者共享一个主机名 例如用户在geocities com 所有共享一个本地存储对象 没有通过路径名限制访问的功能 因此 敦促共享主机上的作者避免使用这些功能 因为其他作者读
  • 在 Flask 中上传图片

    我必须在项目目录的静态文件夹中上传一些图像 但我不知道如何对我的代码说 在下面的 code py 中 我可以上传图像并将其存储在静态文件夹同一级别的项目目录中 但我希望该图像可以存储在静态文件夹内 app route uploader me
  • 根据 python 中的列表测试用户输入

    我需要测试用户输入是否与列表的元素相同 现在我正在这样做 cars red yellow blue guess str input if guess cars 1 or guess cars 2 print success 但是我正在处理更
  • 包私有类中的公共方法

    将方法标记为有什么区别吗public在包私有类中 class SomePackagePrivateClass void foo package private method public void bar public method 之间的
  • 如何将参数传递到 Flex/actionscript 中的事件侦听器函数中?

    因为当使用 sql lite 时 如果你尝试同时执行一个函数 它会抛出一个错误 我只是想创建一个函数来检查它是否正在执行 如果它在 10 毫秒内重试 这个函数就可以正常工作如果我不必向函数传递任何参数 但我很困惑如何将变量传递回它将执行的函
  • Pandas 到 Excel 条件格式整列

    我想将 Pandas 数据框写入 Excel 并格式化 为此我正在使用xlsxwriter 我的问题有两个 首先 如何将条件格式应用于整列 在里面examples http xlsxwriter readthedocs io example
  • 如何在Python内部列表中运行嵌套循环,以便外部循环始终从列表的下一个元素开始,依此类推

    我有一个类似的列表 16777230 0 16777226 1 16777252 2 16777246 0 我想在 python 中的操作的循环 嵌套循环 内创建一个循环 以便内部循环始终从外部循环的下一个元素开始 例如 外循环将在每次迭代
  • '(' 或 '[' 预期

    尝试编译我的程序时出现以下错误 预期为 或 public AccountArrayList line one below is the hi lighted code ArrayList accounts new ArrayList acc
  • Python 模块初始化

    在模块代码中初始化模块中的对象是不好的做法吗 in Module py class Foo object def init self self x Foo Foo Foo 与用户代码相比 您可以 gt gt gt from Module i
  • 同时支持 Android 和 Android TV 的 Android Studio 项目

    我正在尝试创建一个同时支持 Android 手机 平板电脑 和 AndroidTV 的 AndroidStudio 项目 目标是在手机 平板电脑和 AndroidTV 上拥有类似的功能 同时不需要另一个来操作 并重用代码 当我创建一个新项目
  • 在 iPhone 上的 iOS Safari 中访问相机

    I have 单页网络应用程序 SPA 那个verifies用户作为注册过程的一部分 验证的一部分是捕获selfie用户的 为此 我实现了以下代码的一个版本来获取camera输入到一个video网页上的元素 然后我可以从中sample图像转
  • 如何在添加数据后调整android webview的大小

    在布局 线性 垂直 层次结构中 我有多个视图 其中之一是 WebView 它们都有相同的参数 android layout width fill parent android layout height wrap content 对于所有视
  • c++filt 不会分解 typeid 名称

    我正在 GCC 上运行代码C 编译器 输出 type info name include