关于访问权限的问题:private
class A
{
private:
int size;
public:
A(int sz=0);
A(A &a);
};
A::A(int sz)
{
size=sz;
}
A::A(A &a)
{
size=a.size; *****
}
对于私有属性成员不能通过对象引用,但为什么在拷贝构造函数里****处,可以这样引用
谢谢
问题点数:5、回复次数:8Top
1 楼njSeeWhy(北海鲲鹏)回复于 2005-06-19 09:52:27 得分 2
拷贝构造函数是类自己的成员函数,当然可以访问其私有成员变量。Top
2 楼myhouwei(myhouwei)回复于 2005-06-19 10:02:26 得分 0
但它是通过对象访问的啊
我是不是犯了个理解错误:我认为除友员外,通过对象都不能访问私有成员变量
进一步测试
class A
{
private:
int size;
public:
void get();
A(int sz=0);
A(A &a);
};
A::A(int sz)
{
size=sz;
}
A::A(A &a)
{
size=a.size; *****
}
void A::get()
{
A b;
size=b.size; ***
}
***处也是正确的,通过对象是不能访问私有成员的啊?Top
3 楼headwolf1982(头狼)回复于 2005-06-19 10:12:58 得分 0
你上面所写的都是类A的内部成员,内部成员当然可以访问,但如果是其他类继承类A,如
class B : public A
{ …… }
那么类B就无法访问类A中的私有成员Top
4 楼sloriver(二月)回复于 2005-06-19 10:14:30 得分 0
关注 DTop
5 楼xia0cai(我是一棵菠菜)回复于 2005-06-19 10:21:00 得分 0
类方法可以访问类的private 组件Top
6 楼jixingzhong(瞌睡虫·星辰)回复于 2005-06-19 10:41:09 得分 3
通过对象是不能访问私有成员的,
但是,成员函数是内部函数,是有这个权限的!!Top
7 楼fangrk(加把油,伙计!)回复于 2005-06-19 10:53:13 得分 0
成员函数可以访问自己的私有数据,不然私有数据有什么用?Top
8 楼guyanhun(老婆说的都是对的!努力做个好老公!)回复于 2005-06-19 11:15:22 得分 0
嗯?为什么不可以 ?
自己访问自己的私有属性成员当然可以了.Top




