新手学C/C++:C++的类静态成员函数可以访问类中的私有成员吗?为什么?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33249383/article/details/85045048

类的所有成员函数都可以访问本类的私有成员,但是静态成员函数没有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;

}

猜你喜欢

转载自blog.csdn.net/qq_33249383/article/details/85045048