64位的c ++指针赋值

时间:2011-12-19 11:47:20

标签: c++ pointers 64-bit forward-declaration

我正在尝试这样的事情

//A.h
class P;

class A
{
  A(P* pp) { p = pp; }
  P* p;
};
//B.h
#include "P.h"

class B : public A
{
   B(A* aa);
};
//B.cpp
B::B(P* pp) : A(pp)
{}
问题是,例如

pp = 0x00000000024af3f0 

但在作业之后

p = 0x024af3f0cdcdcdcd

这只发生在64位。如果我不使用P的前向声明也没有问题。如果我做p = pp;在B的构造函数中没有问题。

0 个答案:

没有答案