我正在尝试这样的事情
//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的构造函数中没有问题。