首页 > 代码库 > C++私有成员变量被对象直接访问

C++私有成员变量被对象直接访问

C++访问控制

      关键字private,它描述了对类成员的访问控制。使用类的对象方法可以直接访问私有成员函数和变量。类的对象即实例只能通过公共成员函数来访问私有变量和私有成员函数。因此公有成员函数成为对象的私有变量访问的桥梁。

      在c++中,在类的成员函数的参数为此类类型时,可以通过类类型的对象直接访问私有成员变量。或者在成员函数中使用临时对象来直接访问私有变量。

    

class test
{
private:
     int a ;
     int b ;
public:
     test(int x,int y)
     {
       a = x;
       b = y;
     };
     test(){a = 0;b = 0;};
     test add(const test& one)const
     {
          test tmp;
          tmp.a = a + one.a;   //临时对象tmp直接使用了私有变量。形参对象One也可以直接使用临时对象
          tmp.b = b + one.a;
          return tmp;
     };

     void show()
     {cout<<a<<" "<<b<<endl;};


}

test two(1,2);
two.a = 3; //这时候将不会编译通过。因为只能在类的成员函数内,对象可以直接使用私有变量。




C++私有成员变量被对象直接访问