相关疑难解决方法(0)

gdb:显示某些数据的typeinfo

基本上,我想得到typeid(*this).name(),即真正的类型this.

我想在GDB中得到它(不修改源代码).我尝试过,print typeid(*this)但它说typeid未知(因为我没有把它包含在源文件中).

c++ gdb typeid typeinfo

31
推荐指数
4
解决办法
3万
查看次数

禁用RTTI的dynamic_cast

我很想知道在使用动态强制转换RTTI禁用时(无论是-fno-rtti在GCC上还是/GR-在Visual Studio上)编译代码时会发生什么.编译器"退回"了static_cast吗?由于(至少在VS上)它只发出警告,编译的代码会做什么?

更具体地说,如果我在没有RTTI的情况下编译代码,那么可能会发生什么不好的事情我确信dynamic_cast没有错误(即dynamic_cast可以安全地替换为a static_cast),如下所示:

class A{ /*...*/ } ;
class B : public A {
    int foo() { return 42 ;}
} ;
//...
A * myA = new B() ;
int bar = (dynamic_cast<B*>(myA))->foo() ;
Run Code Online (Sandbox Code Playgroud)

c++ dynamic-cast rtti

23
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×2

dynamic-cast ×1

gdb ×1

rtti ×1

typeid ×1

typeinfo ×1