我很好奇这个程序如何能够打印类的func()声明。
<AutoSuggestBox x:Name="autoSuggestBox">
<Interactivity:Interaction.Behaviors>
<local:SelectListViewItemWhenElementGotFocusBehavior ListView="{Binding ElementName=DirectionEntryList}" />
</Interactivity:Interaction.Behaviors>
</AutoSuggestBox>
编译器版本: g ++(Ubuntu / Linaro 4.4.7-1ubuntu2)4.4.7 版权所有(C)2010 Free Software Foundation,Inc。
我怎么能得到方法func()的打印?
答案 0 :(得分:0)
取消引用空指针会产生未定义的行为。
我可以猜到为什么这对你来说仍然有效(但它又是UB!),但如果你试图访问func()
中的成员变量,我很确定它会停止工作
答案 1 :(得分:0)
取消引用NULL
指针意味着您有未定义的行为。
但是在大多数实现中,在这种情况下,this
为NULL
的函数最终正常,调用非虚方法的正常实现是设置隐藏参数{{1}作为指向对象的指针(在本例中为this
),然后只需调用该函数。如果您不访问成员变量或调用虚拟方法,那么在大多数实现中都应该没问题。
由于您无法访问成员或调用虚函数或以任何其他方式对NULL
指针执行任何有用的操作,因此您非常接近this
方法的情况,我建议如果不使用static
指针,则使用它。
对于您希望无法使用this
指针而不检查this
ness的角落情况,您仍然可以使用NULL
方法并明确地传递指针对象:
static