新手學C/C++:C++的類靜態成員函數可以訪問類中的私有成員嗎?爲什麼?

類的所有成員函數都可以訪問本類的私有成員,但是靜態成員函數沒有this指針,因此通過 該類的對象作爲函數參數,可以顯示訪問該類的私有成員。

測試程序如下:

#include <stdio.h>

 

class Demo

{

private:

    int i;

public:

    int getI();

    static void StaticSetI(Demo& d, int v);

};

 

int Demo::getI()

{

    return i;

}

 

void Demo::StaticSetI(Demo& d, int v)

{

    d.i = v;

}

int main()

{

    Demo d;

    

//d.i = 11;

    Demo::StaticSetI(d, 10);

    

    printf("d.i = %d\n", d.getI());

    

    return 0;

}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章