一开始看到这个代码感觉p指向嘚是nullptr,所以p->func()
肯定是要报错了啊但是实际运行是没有问题的,可以输出hello
.
原因就是因为函数是属于类的在编译的时候就确定了,就算是空指针也可以正常访问该方法
如果将上面的函数func
改为虚函数,则会报错因为虚函数是在运行时决定调用哪个函数的,不会在静态编译期間确定是迟绑定的,所以空指针访问时会出错
一开始看到这个代码感觉p指向嘚是nullptr,所以p->func()
肯定是要报错了啊但是实际运行是没有问题的,可以输出hello
.
原因就是因为函数是属于类的在编译的时候就确定了,就算是空指针也可以正常访问该方法
如果将上面的函数func
改为虚函数,则会报错因为虚函数是在运行时决定调用哪个函数的,不会在静态编译期間确定是迟绑定的,所以空指针访问时会出错