社区
C++ 语言
帖子详情
类为什么能这样访问其成员???
cdwy411
2003-08-12 10:22:35
如题:
C++数据结构书上有这样的一段程序:
String::String(const String &ob)
{
....
.......
curlen=ob.curlen;
.......
}
其中int curlen是类对象String 的private 成员。我不太明白为什么在构造函数里
ob对象能够直接访问其private成员curlen,当然在非构造函数里这样又不可呢?
有那位能帮忙解释一下?
谢谢!!!!!
...全文
22
8
打赏
收藏
类为什么能这样访问其成员???
如题: C++数据结构书上有这样的一段程序: String::String(const String &ob) { .... ....... curlen=ob.curlen; ....... } 其中int curlen是类对象String 的private 成员。我不太明白为什么在构造函数里 ob对象能够直接访问其private成员curlen,当然在非构造函数里这样又不可呢? 有那位能帮忙解释一下? 谢谢!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
积木
2003-08-12
打赏
举报
回复
同类型的对象可以访问对方的private成员
这是因为访问限制是在类/类型级别上(类的所有实例)的
而不是在对象级别上(类的某个特定实例)
ejiue
2003-08-12
打赏
举报
回复
想一下多个类变量只有一个函数副本。
那么:
“类对象的私有成员可以被自己的成员函数所访问。当然也可以被从同一个类实例化的对象所访问”
就更加容易理解了。
我也是恍然大悟,呵呵。
jack_wq
2003-08-12
打赏
举报
回复
原因是类的封装!
jack_wq
2003-08-12
打赏
举报
回复
成员函数当然可以访问自己的成员了!
ejiue
2003-08-12
打赏
举报
回复
非构造函数里,也可以这样访问。
为什么这样我想有两个原因:
1、效率。写成引用就是为了效率,如果还进行函数调用......
2、安全性的带来的问题不大。只在本类里访问一个本类变量时允许。
fireseed
2003-08-12
打赏
举报
回复
不是构造也可以啊,类对象的私有成员可以被自己的成员函数所访问。当然也可以被从同一个类实例化的对象所访问。
ejiue
2003-08-12
打赏
举报
回复
为什么c++把访问限制定义在类级别上呢?
我觉得是效率和安全的折衷。而不是理所当然的就允许访问。
请看楼主的这个函数:
String::String(const String &ob)
{
curlen=ob.curlen;
}
为什么要const String &ob?
难道没有一点不安全感吗?
RedSunRS
2003-08-12
打赏
举报
回复
goodboy1881(三井),讲得很有道理。
模板(template)是类的样板,类是它所有实例化对象的样板。
class A
{
public;
A Test();
private:
int m_nTest;
}
A A::Test()
{
test temp;//在它自身的函数中声明一个自已的实例。
temp.m_nTest = m_nTest +200;//有权访问自已类型,因所有实例类型是
//由这个类实例化的。
return temp;
}
为什么静态
成员
函数不能
访问
非静态
成员
?
1.静态
成员
函数只属于
类
本身,随着
类
的加载而存在,不属于任何对象,是独立存在的 2.非静态
成员
当且仅当实例化对象之后才存在,静态
成员
函数产生在前,非静态
成员
函数产生在后,故不能
访问
3.内部
访问
静态
成员
用...
为什么静态方法不能直接
访问
非静态
成员
?
为什么静态方法不能直接
访问
非静态
成员
?1.静态变量在
类
加载的时候,就初始化static的
成员
,在此时,static已经分配内存空间,所以可以被直接
访问
2.非静态变量在通过new创建对象而初始化,所以在对象创建之前,是...
【java基础】内部
类
能
访问
外部
类
的
成员
吗?
昨天下午字节跳动的面试中,问到了这个问题:内部
类
能
访问
外部
类
的
成员
吗? 当时只是回答了静态内部
类
能
访问
外部
类
的静态方法,
成员
内部
类
能
访问
外部
类
的所有方法。然后面试官问我原因我就答不上来了。还是原来看的...
为什么内部
类
能
访问
外部
类
的private
成员
这篇文章通过反编译讲解了为什么内部
类
能用外部
类
private
成员
和为什么外部
类
能用内部
类
private
成员
在Java编程中,使用private关键字修饰了某个
成员
,只有这个
成员
所在的
类
和这个
类
的方法可以使用,其他的
类
都无法...
子
类
能
访问
父
类
的哪些
成员
?
1、能够
访问
标为public protected的
成员
变量和方法; 2、如果子
类
与父
类
在同一包内,还能
访问
默认(无修饰符)的
成员
变量与方法。 3、不能
访问
标为private的
成员
。 ...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章