并不是使用空指針就會(huì)crash挨约。
對于C++的成員函數(shù)來說,第一個(gè)參數(shù)為隱含的this指針产雹,如果一個(gè)類己釋放诫惭,同時(shí)將指針也置空了,或者沒有創(chuàng)建蔓挖,也就是this指針為空夕土,但我們還是可以調(diào)其成員函數(shù)的,只是會(huì)將第一個(gè)參數(shù)傳為nullptr了瘟判,如果巧好這個(gè)成員函數(shù)沒有虛函數(shù)調(diào)用怨绣,也沒有成員訪問,是不會(huì)崩潰拷获,這點(diǎn)在查看棧的時(shí)間有一定的誤導(dǎo)性篮撑。
#include <iostream>
class A
{
public:
void fun()
{
std::cout << "Hello World!\n";
}
int a;
};
int main()
{
A* p = nullptr;
p->fun();
}