社区
C++ 语言
帖子详情
类成员函数访问问题
Roy_Smiling
2011-08-28 08:40:27
类里面的成员函数被编译器编译后都是函数放在代码区里面。
那么怎么保证类的成员函数只能被该类的实例对象访问。而不能像通常的函数调用一样。
如:
class A
{
private:int a;
public: void put{ cout<<a<<endl;}
}
编译器编译后有一个函数:void put(A *this);
怎么保证这个函数只能被A类对象访问,而不能像通常的函数调用一样访问。(求编译器实现机制)
...全文
184
12
打赏
收藏
类成员函数访问问题
类里面的成员函数被编译器编译后都是函数放在代码区里面。 那么怎么保证类的成员函数只能被该类的实例对象访问。而不能像通常的函数调用一样。 如: class A { private:int a; public: void put{ cout<<a<<endl;} } 编译器编译后有一个函数:void put(A *this); 怎么保证这个函数只能被A类对象访问,而不能像通常的函数调用一样访问。(求编译器实现机制)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tony2278
2011-08-29
打赏
举报
回复
编程跟学电路有什么关系?
没什么关系!
如果你是嵌入式软件,就可以了解一下硬件!
上位机软件根本不需要学电路!
iamnobody
2011-08-29
打赏
举报
回复
后面的是开玩笑的,学下汇编有好处不假
iamnobody
2011-08-29
打赏
举报
回复
如果你好奇的话,就会想这是怎么实现的,CPU,里面不就是电路吗?
Roy_Smiling
2011-08-29
打赏
举报
回复
[Quote=引用 8 楼 mingliang1212 的回复:]
我看你学得差不多的时候就学一下汇编吧,汇编不用学太好,能看懂就行,这样才能直接看反汇编,不用问人了,当然如果你还想再深入了解,学数字电路,还想深入学模拟电路,还要更底层就学电路吧。
[/Quote]
编程跟学电路有什么关系
iamnobody
2011-08-29
打赏
举报
回复
我看你学得差不多的时候就学一下汇编吧,汇编不用学太好,能看懂就行,这样才能直接看反汇编,不用问人了,当然如果你还想再深入了解,学数字电路,还想深入学模拟电路,还要更底层就学电路吧。
iamnobody
2011-08-29
打赏
举报
回复
[Quote=引用 6 楼 roy_smiling 的回复:]
引用 5 楼 luciferisnotsatan 的回复:
引用 2 楼 pengzhixi 的回复:
访问性是针对类的,不是针对对象的。你理解完全错误了。
++
而且访问限制是针对编译时的,编译后没有这种限制。只有内存访问权限。
我想知道编译器是怎么实现这种访问限制的?
[/Quote]
编译器实际上 类似这样翻译的
void A::put(A* this);
只要加上类名不就知道是属于谁的函数了吗?
Roy_Smiling
2011-08-28
打赏
举报
回复
[Quote=引用 5 楼 luciferisnotsatan 的回复:]
引用 2 楼 pengzhixi 的回复:
访问性是针对类的,不是针对对象的。你理解完全错误了。
++
而且访问限制是针对编译时的,编译后没有这种限制。只有内存访问权限。
[/Quote]
我想知道编译器是怎么实现这种访问限制的?
luciferisnotsatan
2011-08-28
打赏
举报
回复
[Quote=引用 2 楼 pengzhixi 的回复:]
访问性是针对类的,不是针对对象的。你理解完全错误了。
[/Quote]
++
而且访问限制是针对编译时的,编译后没有这种限制。只有内存访问权限。
grefen
2011-08-28
打赏
举报
回复
上面笔误,应该是cout<<a->a<<endl;
grefen
2011-08-28
打赏
举报
回复
A x;
x.put();
编译后大概应该是这样的:
A x;
put(&x);
另外成员函数一般内部差不多是这样的:
void put(A* a){ //这里的参数是编译器放的,就是传说中的this指针;
cout<<a.a<<endl;
}
pengzhixi
2011-08-28
打赏
举报
回复
访问性是针对类的,不是针对对象的。你理解完全错误了。
羽飞
2011-08-28
打赏
举报
回复
每次不都要传一个class A类型相关的参数吗
如果参数不对不是不能调用这个函数
C++
类
成员函数
的
访问
权限
本文详细解析了C++中
类
成员函数
的
访问
权限,包括对main函数变量的
访问
限制,以及
类
之间变量重复定义的
问题
。指出
类
成员函数
不能
访问
main函数内的局部变量,同时强调不同
类
内可以使用相同的变量名。
类
成员函数
作为多线程的入口函数的实现方法
本文介绍了如何在C++中将
类
成员函数
作为多线程的入口函数,解决多线程编程中
访问
类
成员变量的
问题
,并提供了具体的实现案例。
bind
类
成员函数
本文探讨了在C++中如何使用
类
成员函数
作为排序准则,并介绍了如何解决
类
私有成员变量在排序过程中的
访问
问题
。通过bind绑定器实现了在sort函数中使用
类
成员函数
并
访问
类
私有变量。
C++
类
成员函数
本文通过对比两个C++
类
成员函数
的调用情况,解析了
成员函数
调用时this指针的作用及非法内存
访问
的
问题
。揭示了在未初始化的对象上调用
成员函数
可能引发的崩溃原因。
类
的非虚
成员函数
的
访问
-------脑子不好使,转了下出来了,记下给自己留个醒
本文探讨了在C++中如何通过空
类
对象
访问
成员函数
,以及当
成员函数
访问
类
成员变量时的
问题
,并展示了通过内存布局变相
访问
的方法。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章