社区
C++ 语言
帖子详情
类为什么能这样访问其成员???
cdwy411
2003-08-12 10:22:35
如题:
C++数据结构书上有这样的一段程序:
String::String(const String &ob)
{
....
.......
curlen=ob.curlen;
.......
}
其中int curlen是类对象String 的private 成员。我不太明白为什么在构造函数里
ob对象能够直接访问其private成员curlen,当然在非构造函数里这样又不可呢?
有那位能帮忙解释一下?
谢谢!!!!!
...全文
39
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.内部
访问
静态
成员
用self::,而
访问
非静态
成员
要用this指针,静态
成员
函数没有this指针,故不能
访问
。 ...
为什么静态方法不能直接
访问
非静态
成员
?
为什么静态方法不能直接
访问
非静态
成员
?1.静态变量在
类
加载的时候,就初始化static的
成员
,在此时,static已经分配内存空间,所以可以被直接
访问
2.非静态变量在通过new创建对象而初始化,所以在对象创建之前,是不可以
访问
非静态变量的 2.总结:静态变量属于
类
,不需要生成对象就存在了,而非静态变量需要生成对象才能产生,所以静态变量不能直接
访问
。 接下来,我们来说说静态变量与非静态变量的区
【java基础】内部
类
能
访问
外部
类
的
成员
吗?
昨天下午字节跳动的面试中,问到了这个问题:内部
类
能
访问
外部
类
的
成员
吗? 当时只是回答了静态内部
类
能
访问
外部
类
的静态方法,
成员
内部
类
能
访问
外部
类
的所有方法。然后面试官问我原因我就答不上来了。还是原来看的不仔细,这里具体整理下。 通俗的理解,在一个
类
里面定义另一个
类
,这样的
类
称为内部
类
。广义上来说内部
类
一共有四种:
成员
内部
类
、局部内部
类
、静态内部
类
、匿名内部
类
。 其中静态内部
类
只能
访问
外部
类
静态的方法和属性。其余的内部
类
可以
访问
所有的外部
类
成员
变量及方法。静态内部
类
不依赖于外部
类
存在。 其他内部
类
可以
访问
外部
类
【001
类
和数据的抽象】C++中
类
成员
的
访问
权限?
return 0;当你在main()函数中执行int b = ca.a;这句代码时,是main()函数在
访问
对象ca的
成员
变量a,而不是ca自己在
访问
它自己的
成员
变量,这就是外部
访问
。那么,什么是内部
访问
呢?比如CA的构造函数CA()本身是对象ca的
成员
函数,在这个构造函数的内部也在
访问
a,这就是ca自己在
访问
自己的
成员
变量,这就是内部
访问
。如果是在对象ca的外部,
类
成员
的
访问
属性
(1)基
类
的
成员
函数可以
访问
基
类
成员
,派生
类
的
成员
函数可以
访问
派生
类
成员
。 私有数据
成员
只能被同一
类
中的
成员
函数
访问
,公用
成员
可以被外界
访问
。 (2)基
类
的
成员
函数只能
访问
基
类
的
成员
,而不能
访问
派生
类
的
成员
。 (3)在派生
类
外可以
访问
派生
类
的公用
成员
,而不能
访问
派生
类
的私有
成员
。 对基
类
的继承方式 (1)公用继承(public inheritance) 基
类
的公用
成员
和保护
成员
在派...
C++ 语言
65,208
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章