社区
C++ 语言
帖子详情
类为什么能这样访问其成员???
cdwy411
2003-08-12 10:22:35
如题:
C++数据结构书上有这样的一段程序:
String::String(const String &ob)
{
....
.......
curlen=ob.curlen;
.......
}
其中int curlen是类对象String 的private 成员。我不太明白为什么在构造函数里
ob对象能够直接访问其private成员curlen,当然在非构造函数里这样又不可呢?
有那位能帮忙解释一下?
谢谢!!!!!
...全文
81
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;
}
c++中
类
外
访问
一个
类
的私有
成员
本文围绕C++
类
的私有
成员
展开,介绍正常情况下
类
外无法直接
访问
私有
成员
,但构造函数可
访问
并初始化。还指出可通过地址间接修改私有
成员
,原因是C++可按偏移地址
访问
对象
成员
。此外,也可通过
类
内的public接口操作私有变量。
C++
类
学习笔记——C++
类
成员
访问
本文是C++初学者的学习笔记,主要探讨对象
成员
选择运算符(点)的使用,C++中的public、protected、private
访问
说明符的区别。文章通过实例展示了如何通过点运算符
访问
public
成员
,以及为什么不能直接
访问
protected和private
成员
。
C++学习—
类
的
成员
函数和变量的
访问
、静态与非静态
成员
函数
本文详细介绍了C++中
类
的
成员
访问
方式,包括静态
成员
和非静态
成员
的
访问
、定义及作用。静态
成员
是所有对象共享的,不随对象创建而分配内存,可通过
类
名直接
访问
。非静态
成员
则每个对象都有独立副本,通过对象
访问
。this指针在非静态
成员
函数中用于标识当前对象,确保
成员
函数操作的是正确对象的数据
成员
。
类
私有
成员
访问
理解
本文探讨了
类
私有
成员
的
访问
特性,强调在
类
的内部,无论是静态还是非静态
成员
函数,都可以直接
访问
任何实例的私有
成员
,但前提是这些实例必须属于该
类
。
【C++】class
类
(
类
的定义、
成员
访问
、
类
的大小、this指针)
本文深入探讨了C++中
类
的概念,包括
类
的定义、
成员
访问
限定符、封装、作用域、实例化、大小计算以及this指针的使用。从面向过程与面向对象的区别开始,逐步介绍了
类
的声明与定义、公有与私有
成员
的
访问
控制、
类
的作用域限定、对象的创建和
类
成员
的
访问
方式,最后分析了
类
的内存占用和this指针在
成员
函数中的应用。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章