私有变量被访问而不出错,为什么?

noyear 2009-05-29 01:43:32
#include<iostream>
using namespace std;
template <class T>
class MyClass
{

private :
T value;
public :
MyClass(T v)
{
value=v;
}
void assign(const MyClass<T>&x)
{
value=x.value////////////////////////////////////////////////////////////////////////
}
void show()
{
cout<<value<<endl;
}
};
int main()
{
MyClass<double>*d=new MyClass<double>(4.00);
MyClass <double>*e=new MyClass<double>(10.00);
// MyClass <int>i;

d->assign(*e);
d->show();
e->show();
//d.assign(i);
cout<<"game over!"<<endl;
}

这个例子中最后是正确的,只是不明白,为什么在//////////一行里的x.value可以调用而没错(value是私有变量)???
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
padiu01 2009-05-29
  • 打赏
  • 举报
回复
1.类内的成员函数当然可以访问私有变量,这和类的封装是一致的
2.不是很提倡的方法,友元函数也可以访问私有变量
amossavez 2009-05-29
  • 打赏
  • 举报
回复
那你告我怎么访问私有成员
g394594141 2009-05-29
  • 打赏
  • 举报
回复
那不能访问私有,那定义私有变量还有用?
red_berries 2009-05-29
  • 打赏
  • 举报
回复
只要是一个属于一个类的就可以相互访问
red_berries 2009-05-29
  • 打赏
  • 举报
回复
私有是对于类来说的,并不是对于对象来说的
HelloDan 2009-05-29
  • 打赏
  • 举报
回复
如果是这样那么函数不也要是独立的???
noyear 2009-05-29
  • 打赏
  • 举报
回复
但它们实例后应该有自己的域,觉得它们应该是独立的。
huliang66 2009-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 amossavez 的回复:]
那你告我怎么访问私有成员
[/Quote]
hehe
nicky_zs 2009-05-29
  • 打赏
  • 举报
回复
一个类的成员函数中,当然可以访问到这个类的任何私有成员啊。。。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧