相关疑难解决方法(0)

Visual Studio中指向类数据成员的C++指针的地址

我正在读" Inside the C++ Object Model "一书.书中有一个例子:

struct Base1
{
    int v1;
};

struct Base2
{
    int v2;
};

class Derived : public Base1, public Base2 {};

printf("&Derived::v1 = %p\n", &Derived::v1);        // Print 0 in VS2008/VS2012
printf("&Derived::v2 = %p\n", &Derived::v2);        // Print 0 in VS2008/VS2012
Run Code Online (Sandbox Code Playgroud)

在前面的代码中,地址Derived :: v1&Derived :: v2的打印都是0.但是,如果通过变量打印相同的地址:

int Derived::*p;
p = &Derived::v1;
printf("p = %p (&Derived::v1)\n", p);        // Print 0 in VS2008/VS2012 as before
p = &Derived::v2;
printf("p = %p (&Derived::v2)\n", p);        // Print 4 …
Run Code Online (Sandbox Code Playgroud)

c++ pointers visual-studio

4
推荐指数
1
解决办法
1882
查看次数

标签 统计

c++ ×1

pointers ×1

visual-studio ×1