单例类指针赋值不起作用

时间:2012-01-12 12:35:37

标签: c++ singleton

我有一个ABC类,它是单例。(这是C ++) 当我做的时候

ABC *b = ABC::getInstance();
ABC* a;
a=b;

然后当我检入调试器时,b的值未分配给。

在调试器中,a的值显示为0x00000000,ABC的成员的所有垃圾值(VS 2008 Debugger)

我在调试器监视窗口中做了一个* b,我看到了有效值,当我执行* a时,我看到所有的null和垃圾值(这是在上述过程结束后)

2 个答案:

答案 0 :(得分:4)

ab是指针。

他们指出的地址将是相同的,尽管他们的具体地址会有所不同。

另一个原因可能是您在发布模式下进行调试,之后您没有使用变量a。在这种情况下,编译器可以决定简单地省略a

的声明和赋值

答案 1 :(得分:1)

您确定调试器已执行语句a=b;

调试器中当前突出显示的行尚未执行。所以将控件移到下一行并再次检查值。

这可能听起来很愚蠢,但这是我现在能想到的唯一原因。

另一个原因,取自Luchian Grigore的回答:

  

另一个原因可能是您在发布模式下进行调试,之后您没有使用变量a。在这种情况下,编译器可以决定简单地省略声明和赋值。