社区
C++ 语言
帖子详情
类为什么能这样访问其成员???
cdwy411
2003-08-12 10:22:35
如题:
C++数据结构书上有这样的一段程序:
String::String(const String &ob)
{
....
.......
curlen=ob.curlen;
.......
}
其中int curlen是类对象String 的private 成员。我不太明白为什么在构造函数里
ob对象能够直接访问其private成员curlen,当然在非构造函数里这样又不可呢?
有那位能帮忙解释一下?
谢谢!!!!!
...全文
33
8
打赏
收藏
类为什么能这样访问其成员???
如题: C++数据结构书上有这样的一段程序: String::String(const String &ob) { .... ....... curlen=ob.curlen; ....... } 其中int curlen是类对象String 的private 成员。我不太明白为什么在构造函数里 ob对象能够直接访问其private成员curlen,当然在非构造函数里这样又不可呢? 有那位能帮忙解释一下? 谢谢!!!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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.总结:静态变量属于
类
,不需要生成对象就存在了,而非静态变量需要生成对象才能产生,所以静态变量不能直接
访问
。 接下来,我们来说说静态变量与非静态变量的区
为什么内部
类
能
访问
外部
类
的private
成员
此文文转载文 原文链接: https://droidyue.com/blog/2014/10/02/the-private-modifier-in-java/ 这篇文章通过反编译讲解了为什么内部
类
能用外部
类
private
成员
和为什么外部
类
能用内部
类
private
成员
在Java编程中,使用private关键字修饰了某个
成员
,只有这个
成员
所在的
类
和这个
类
的方法可以使用,其他的
类
都无法
访问
到这个pri...
为什么static
成员
函数不能
访问
非static变量, 不能调用非static
成员
函数?
为什么static
成员
函数不能
访问
非static变量, 不能调用非static
成员
函数? 这个很好理解, static
成员
函数
成员
函数属于
类
, 独立于对象而存在, 不依赖于对象。 而非static
成员
函数、
成员
变量是依赖于对象的。 所以, 如果没有对象, 你用static
成员
函数去
访问
非static
成员
函数、
成员
变量, 那不是在扯淡么? 所以, static
成员
函数
类
成员
的
访问
属性
(1)基
类
的
成员
函数可以
访问
基
类
成员
,派生
类
的
成员
函数可以
访问
派生
类
成员
。 私有数据
成员
只能被同一
类
中的
成员
函数
访问
,公用
成员
可以被外界
访问
。 (2)基
类
的
成员
函数只能
访问
基
类
的
成员
,而不能
访问
派生
类
的
成员
。 (3)在派生
类
外可以
访问
派生
类
的公用
成员
,而不能
访问
派生
类
的私有
成员
。 对基
类
的继承方式 (1)公用继承(public inheritance) 基
类
的公用
成员
和保护
成员
在派...
C++ 语言
65,199
社区成员
250,520
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章