class Register
{
private:
DWORD ax,dx,cx,bx; // POH
DWORD bp,sp;
DWORD flag, ip;
public:
//====================================================
Register()
{
ax = 0x0;
dx = 0x0;
cx = 0x0;
bx = 0x0;
bp = 0x0;
//memset(&this->sp,0,sizeof(sp));
sp = 0x0;
flag = 0x0;
ip = 0x0;
}
//====================================================
~Register()
{
}
//====================================================
void setAx(DWORD d)
{
ax=d;
}
//====================================================
DWORD getSp()
{
return sp;
}
}*PReg;
为什么函数getSp();
会出现访问冲突错误?
答案 0 :(得分:0)
你忘记了实例化你的课程。你已经创建了一个变量,它是一个指向类Register的指针,但你没有实例化它。
你得到的是一个空指针或指向某个随机内存位置的指针,你假设它指向你的类的实例。因此,当您尝试访问任何成员变量时,您实际上正在访问您无权访问的内存位置。
您需要做的是创建一个新的类实例:
PReg = new Register();
我可以同时建议你将变量声明从类原型中移开(我假设它存在于头文件中)。