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-28
class Text{
private:
int a;//私有变量a
int b;//私有变量b
void privateCheck(){cout<<b<<endl;}//私有函数privateCheck调用私有成员B
public:
void publicCheck() { cout<<a<<endl;}
void iWantCheckB(){privateCheck();}//公有函数,作用是调用私有函数
Text(){a=10;b=20;}
};

int main(){
Text test;
Text* pTest=&test;
test.publicCheck(); //合法
pTest->publicCheck();//合法
//test.a=10;//非法,私有变量不可以在主函数里由对象直接调用。
//pTest->a=10;//也是非法的
//test.privateCheck();//非法,私有函数也不可以由对象直接调用
test.iWantCheckB();//合法,可以用共有函数调用私有函数和变量。
return 0;}本回答被网友采纳
第2个回答  2009-10-29
不可以,只能用类提供的接口,也就是公有函数来访问私有成员
第3个回答  2009-10-27
类的对象不能访问私有数据成员,只能通过成员函数访问
第4个回答  2019-06-05
class
Text{
private:
int
a;//私有变量a
int
b;//私有变量b
void
privateCheck(){cout<<b<<endl;}//私有函数privateCheck调用私有成员B
public:
void
publicCheck()
{
cout<<a<<endl;}
void
iWantCheckB(){privateCheck();}//公有函数,作用是调用私有函数
Text(){a=10;b=20;}
};
int
main(){
Text
test;
Text*
pTest=&test;
test.publicCheck();
//合法
pTest->publicCheck();//合法
//test.a=10;//非法,私有变量不可以在主函数里由对象直接调用。
//pTest->a=10;//也是非法的
//test.privateCheck();//非法,私有函数也不可以由对象直接调用
test.iWantCheckB();//合法,可以用共有函数调用私有函数和变量。
return
0;}

C++中类的对象可以访问类的私有数据成员吗?
类的对象是不能访问类的私有数据成员的,只有通过类的成员函数才可以访问类的私有数据。

C++中类的成员函数能否访问类的私有成员?
类的成员函数可以访问类的私有成员的,友元函数是为了让除了类的成员函数以外的函数可以访问到类的私有成员。 本回答由科学教育分类达人 顾凤祥推荐 举报| 答案纠错 | 评论 16 2 chennan917 采纳率:43% 擅长: 电脑装机\/选购 C\/C++ 数学 物理学 校园生活 其他回答 成员函数是肯定能房问私有数据的.不然要私有...

C++ 一个类的对象不能访问该类的私有函数和成员吗?
只能在内部使用,规则的设立是为了防止数据泄漏,你想象要是这样你能访问不就是说在外面就能引用乃至修改了,这是不允许的 private在定义类的时候,其类型只能由类的成员函数使用,这样如果类中没有相应的函数,在外面是获取不到该值的,其是定义看明白了也就差不多懂了 ...

c++中可不可以在一个类中访问另一个类的私有成员?
c++中可以在一个类中访问另一个类的私有成员,通过定义友元类即可实现。 class node { public: node(int data = 0) :mdata(data), mpnext(NULL){} private: int mdata; node *mpnext; friend class link; }; 友元类本质: C++提高破坏数据封装和隐藏的一种机制,将一个类A声明为另一个类B的友元类...

C++类,中私有成员怎样能被主函数访问.
回答:没办法实现,私有成员,只能由类中的成员函数和友元函数访问,其他地方是访问不到的。

c ++私有成员访问性
你这个问题有2方面的问题:一:类和对象的概念你没搞清楚,类是对象的高度抽象,对象是类的实体化,在内存中来说,类就是一种数据类型跟int等式一样的,单说类是没有意义的,它并不占用内存,所以你这个类a的私有成员被类a对象访问本来就没任何意义。二:类的私有成员是类的内部属性,就相当于一...

C++中,私有继承时,子类对象能否访问基类private成员?
可以的,但是访问方式会有限制 对于public类型的成员变量,无论是公有继承还是私有继承,都可以直接在派生类中定义的成员函数直接访问。对于private类型的成员变量,无论是公有继承还是私有继承,在派生类中定义的成员函数都不能直接访问基类的私有成员,只能通过基类的public或protect成员函数访问。

c++中类的对象和成员变量的区别
C语言的变量可以分成两种级别:全局变量和局部变量 全局变量,在该变量之后定义的函数都可以访问 局部变量,只能在定义的函数中访问 而C++中多出了成员变量,成员变量通常是私有。成员变量依附于对象存在,有了对象,成员变量才有内存 而成员变量的可以被本类的所有成员函数直接访问的。

C++中类的友元函数能不能访问类的静态数据成员
1、 友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。2、 友元函数可以访问类的静态成员、私有成员和公有成员。3、友元的作用在于提高程序的运行效率(即减少了类型检查和安全性...

类的私有成员可在何处访问
类的私有成员只能在该类的成员函数内部访问。在C++和Java等面向对象编程语言中,类的私有成员,无论是成员变量还是成员函数,都只能在该类的成员函数内部被访问。这种机制被称为“封装”,它可以隐藏类的内部实现细节,只留下必要的接口(即一些成员函数)来对对象进行操作,这样能够避免类的使用者随意使用...

相似回答