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

C++訪问控制

      keywordprivate,它描写叙述了对类成员的訪问控制。使用类的对象方法能够直接訪问私有成员函数和变量。类的对象即实例仅仅能通过公共成员函数来訪问私有变量和私有成员函数。

因此公有成员函数成为对象的私有变量訪问的桥梁。

      在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; //这时候将不会编译通过。由于仅仅能在类的成员函数内,对象能够直接使用私有变量。





原文地址:https://www.cnblogs.com/wgwyanfs/p/7060845.html