社区
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类对象访问,而不能像通常的函数调用一样访问。(求编译器实现机制)
...全文
141
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++
类
成员函数
使用时,都会隐式传递一个this指针给该函数,this指针指向该
类
的对象。函数体可以通过显示调用该指针或直接
访问
类
内成员。 回调函数是用指针来调用的函数,最常使用的回调...
C++
类
成员函数
可以
访问
所有
类
对象的私有数据
众所周知,
类
的私有变量是无法在
类
外直接
访问
的,只能通过
类
的
成员函数
访问
。 且看下面一段代码: class Stock { private: double total_val;//这是私有的哦~ public: Stock();//默认构造函数 Stock(const ...
【C/C++笔记】之
类
成员函数
作为线程函数
首先,普通
类
成员函数
是不能够直接被当做线程的
成员函数
使用。因为
类
中定义的
成员函数
,编译器会给其加上this指针。 推荐一个论坛讨论过程:
成员函数
作为线程函数 静态
成员函数
: 把
成员函数
声明成static
类
型,...
关于
类
成员函数
中
访问
同
类
对象的私有成员
关于
类
成员函数
中
访问
同
类
对象的私有成员,主要包含以下几种场景: a. 在C++的
类
的
成员函数
中,允许直接
访问
该
类
的对象的私有成员变量。 b. 在
类
的
成员函数
中可以
访问
同
类
型实例的私有变量。 c. 拷贝构造函数...
c++ 线程函数(
类
成员函数
作为线程函数使用)
C++
类
成员函数
使用时,都会隐式传递一个this指针给该函数,this指针指向该
类
的对象。函数体可以通过显示调用该指针或直接
访问
类
内成员。 回调函数是通过指针调用的函数,最常使用的回调函数就是在创建线程时,以一...
C++ 语言
64,639
社区成员
250,578
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章