C 空指標訪問成員函式

2021-09-03 01:14:00 字數 698 閱讀 7202

//空指標訪問成員函式;

class person

void showage()

int m_age;

};void test01()

//可以呼叫show,不能呼叫showage。

//呼叫show時,編譯器隱式加上了void show(person * this)

//雖然此時this(==p)為空,但是下面的函式裡沒有用到this,所以沒有影響;

//同理,對於showage(),裡面是要用到this->m_age的,但是其為空,所以會報錯。

int main()

可以加入if(!this)的保護措施。

//空指標訪問成員函式;

class person

void showage()

int m_age;

};void test01()

//可以呼叫show,不能呼叫showage。

//呼叫show時,編譯器隱式加上了void show(person * this)

//雖然此時this(==p)為空,但是下面的函式裡沒有用到this,所以沒有影響;

//同理,對於showage(),裡面是要用到this->m_age的,但是其為空,所以會報錯。

int main()

空指標訪問成員函式(3)

c 空指標是可以呼叫成員函式的,但是也要注意有沒有用到this指標。如果用到this指標,需要加以判斷來保證 的健壯性。1 include 2 using namespace std 34 class person512 13void showpersonage int age 1420 21thi...

c 的this指標與空指標類成員函式訪問

我們知道,在c 的非靜態成員函式中,有乙個隱含的引數,即this指標,利用它,我們可以訪問相應物件的資料成員,那麼究竟this指標是如何作用的呢?下面先來看乙個例子。有下面的乙個簡單的類 cpp view plain copy class cnullpointcall int cnullpointc...

C 空指標呼叫成員函式

如果在c 裡用空指標呼叫成員函式會發生什麼情況呢?以下面類為例 class a void geta void seta int x virtual void test 首先我們用空指標p去呼叫成員方法show 發現是可以成功呼叫的 呼叫geta 發現程式可以編譯成功,但執行失敗,並返回了乙個錯誤碼 ...