什么类型`*`对__vfptr意味着什么?

xcd*_*n05 11 c++ pointers visual-studio visual-studio-debugging

是的我知道*是一个指针.那不是我在说什么.在我的一个程序中,我有一个断点设置,我注意到在汽车中有一个__vfptr带有值的变量0x000007feed210a00.

但是在类型下,它只是说*就是这样.我程序中的所有其他指针都有类似unsigned char*or some::namespace::Frame*或or的类型int*.这些是有意义的,因为指针直接绑定到特定的类或数据类型.但我不知道*可能是,是否只有普通的指针类型?

编辑:我正在使用Visual Studio 2010.

Cae*_*sar 11

__vfptr包含Virtual方法表,它包含允许继承中的动态绑定的信息.

其中的信息将包括要解析的函数指针virtual functions和类及其父级的信息.

  • 它包含了很多moe. (2认同)

Jam*_*nze 5

答案显然是依赖于实现的,并且正式涉及调试器,而不是C++.然而,在实践中,一些变体_vptr是或多或少的标准(在通常意义上,而不是由正式标准定义的意义上)指向该指针的名称,而该名称_vtable又包含所需的各种信息.虚函数和RTTI的解析.所以这_vptr是一个指向指针,偏移和许多其他不同事物的指针.调试器可能只是避免给这个目标命名或描述其结构.