C++中类的对象可以访问类的私有数据成员吗?

如果可以,举一个实际的例子吧
下面的例子中拷贝构造函数为什么可以出现"X=p.X"?顺便帮我讲一下当类的一个对象去初始化该类的另一对象的时候是如何调用拷贝构造函数

#include <iostream>
using namespace std;
class Point
{ public:Point(int xx=0,int yy=0){X=xx;Y=yy;}
Point(Point &p);
int GetX( ){return X;}
int GetY( ){return Y;}
private:int X,Y;
};
Point::Point(Point &p) {X=p.X;Y=p.Y;cout<<“拷贝构造函数被调用<<endl;}
void main()
{ Point A(1,2);Point B(A);cout<<B.GetX()<<endl;}

第1个回答  2009-10-27
私有数据成员只能由成员函数访问
class a{
private:
int b;
public:
a()
{
b=0;
}
void fun(void)
{
cout<<b++<<endl;
}};
第2个回答  2019-05-04
可以访问,因为C++中存在友元函数和友元类这个东西。
第3个回答  2018-04-08
#include <iostream>
using namespace std;
class Point
 {
         friend class Point;
     public:
     Point(int xx=0,int yy=0){X=xx;Y=yy;} 
     Point(Point &p);
     int GetX( ){return X;}
     int GetY( ){return Y;}
     private:
     int X,Y;
  };
Point::Point(Point &p)  {X=p.X;Y=p.Y;cout<<“拷贝构造函数被调用<<endl;}
void main()
{ Point A(1,2);Point B(A);cout<<B.GetX()<<endl;}

只需要加上友元类就行了,自己是自己的友元类,则可以不同对象之间访问私有属性了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网