社区
C++ 语言
帖子详情
类为什么能这样访问其成员???
cdwy411
2003-08-12 10:22:35
如题:
C++数据结构书上有这样的一段程序:
String::String(const String &ob)
{
....
.......
curlen=ob.curlen;
.......
}
其中int curlen是类对象String 的private 成员。我不太明白为什么在构造函数里
ob对象能够直接访问其private成员curlen,当然在非构造函数里这样又不可呢?
有那位能帮忙解释一下?
谢谢!!!!!
...全文
27
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.总结:静态变量属于
类
,不需要生成对象就存在了,而非静态变量需要生成对象才能产生,所以静态变量不能直接
访问
。 接下来,我们来说说静态变量与非静态变量的区
【java基础】内部
类
能
访问
外部
类
的
成员
吗?
昨天下午字节跳动的面试中,问到了这个问题:内部
类
能
访问
外部
类
的
成员
吗? 当时只是回答了静态内部
类
能
访问
外部
类
的静态方法,
成员
内部
类
能
访问
外部
类
的所有方法。然后面试官问我原因我就答不上来了。还是原来看的不仔细,这里具体整理下。 通俗的理解,在一个
类
里面定义另一个
类
,这样的
类
称为内部
类
。广义上来说内部
类
一共有四种:
成员
内部
类
、局部内部
类
、静态内部
类
、匿名内部
类
。 其中静态内部
类
只能
访问
外部
类
静态的方法和属性。其余的内部
类
可以
访问
所有的外部
类
成员
变量及方法。静态内部
类
不依赖于外部
类
存在。 其他内部
类
可以
访问
外部
类
为什么内部
类
能
访问
外部
类
的private
成员
此文文转载文 原文链接: https://droidyue.com/blog/2014/10/02/the-private-modifier-in-java/ 这篇文章通过反编译讲解了为什么内部
类
能用外部
类
private
成员
和为什么外部
类
能用内部
类
private
成员
在Java编程中,使用private关键字修饰了某个
成员
,只有这个
成员
所在的
类
和这个
类
的方法可以使用,其他的
类
都无法
访问
到这个pri...
为什么子
类
不能
访问
基
类
的private
成员
?为什么要这样设计?
看到很多朋友提问“为什么子
类
不能
访问
基
类
的private
成员
”?随后看到很多朋友回答“这是规范”“这是封装的特性”
类
似这样的回答。我觉得大家都是对的。但是有时候您需要关注提问的重点在于why?为什么Java要这样设计private? 首先,private
成员
具有良好的封装性(encapsulation)。这个性质对于良好的设计来说是个重要的要素。因为良好的封装性会减小耦合的。服务代码可以定义public函数给客户代码。这样一来客户代码可以和服务代码并行开发。更重要的是,如果修改服务代码的内部实现也不需
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章