1. 程式人生 > >空指標也可以訪問成員函式?

空指標也可以訪問成員函式?

今天在看多型,這一部分,寫了些驗證程式,發現下面的問題:

#include <iostream>

using namespace std;

class Test
{
public:
    void TestNullPointer()
    {
 cout<<"Look, you can access me through a Null Pointer"<<endl;
    }
};
int main()
{
    Test *p=NULL;
    p->TestNullPointer();
}

編譯後執行,可以發現,成員函式被執行了。

不知道該如何解釋?

想想。。。

明白了,解釋如下:

因為這裡的TestNullPointer沒有用到私有成員,就是this指標傳進來,也沒有用到,

所以沒有報錯,如果在函式中使用了成員資料,就會又錯了!

還是對於類的記憶體佈局理解不好..