類的所有成員函數都可以訪問本類的私有成員,但是靜態成員函數沒有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;
}