请问有关问题,就是注释后面有很多问号的那两行,other这个引用如何能直接访问私有成员

请教问题,就是注释后面有很多问号的那两行,other这个引用怎么能直接访问私有成员?
#include<iostream>
#include<string>
using namespace std;
class X{
int a;
char *b;
float c;
public:
X(int x1,char *x2,float x3):a(x1),c(x3){
b=new char[sizeof(x2)+1];
///strcpy(b,x2);
b=x2;
cout<<"USING FLOAT"<<endl;
}
X():a(0),b("X::X()"),c(10){cout<<"USING NULL"<<endl;}
X(int x1,char *x2="X::X(....)",int x3=10):a(x1),b(x2),c(x3){cout<<"USING INT"<<endl;}
X(const X& other){
a=other.a;//?????????????????、??
b="X::X(const X& other)";
c=other.c;//?????????????????????
}
void print(){
cout<<"a="<<a<<"\t"<<"b="<<b<<"\t"<<"c="<<c<<endl;
}
};
void main(){
X *A=new X(4,"X::X(int ,char,float)",32);
X B,C(10),D(B);
A->print();
B.print();
C.print();
D.print();
}
class ,c++

------解决方案--------------------
成员访问控制 是限制类的,不是对象。
other是同一个类的对象,当然可以访问了。
------解决方案--------------------
引用:
Quote: 引用:

成员访问控制 是限制类的,不是对象。
other是同一个类的对象,当然可以访问了。

不是吧,私有成员不是只有通过公有成员函数访问吗?


private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问. 
protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问 
public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问
注:友元函数包括两种:设为友元的全局函数,设为友元类中的成员函数

ps:楼主基础不怎么好!建议 买本 c++ primer 回来好好看几遍
------解决方案--------------------
#1 不是都说了吗。
在类成员函数内部,可以访问本类的私有数据,不管该数据是当前对象的,还是本类其他对象的。
------解决方案--------------------
引用:
Quote: 引用:

#1 不是都说了吗。
在类成员函数内部,可以访问本类的私有数据,不管该数据是当前对象的,还是本类其他对象的。

终于想通了,虽然other这个对象直接访问了私有成员但它是在类的成员函数中,其实是帮助成员函数来访问私有数据,是不是这个意思?

我很早之前问过这个问题,得到的结果是,你可以把这个看作是C++的一个规定,允许这么做