**代碼:**
****
~~~
#include<iostream>
using namespace std;
class A
{
private:
int value;
public:
A()
{
value=0;
}
void coutHello()
{
cout<<"hello"<<endl;
}
void coutValue()
{
cout<<value<<endl;
}
};
int main()
{
A *pA=NULL; //空指針,所指向的內容不可訪問存取
pA->coutHello();
pA->coutValue();
return 0;
}
~~~
(感謝網友提供的題目)
**疑:調用coutHello和coutValue方法有什么問題?**
解答:成員函數的地址在編譯器編譯時給出的,所以是已知的,根據thiscall約定,類的成員函數在編譯時編譯器會傳入一個this指針,通過this指針指向成員變量,在調用couthello時并未用到this指針所以調用正常,而調用coutvalue時,value需要用到this指針,因為此時this是NULL指針,所以會發生內存報錯。
======= welcome to my HomePage([*http://blog.csdn.net/zhanxinhang*](http://blog.csdn.net/zhanxinhang)) to have a?communication =======