首页 > 解决方案 > 当代码从高级语言转换为低级语言时,访问说明符是否仍然完好无损?

问题描述

就像高级语言中存在的所有私有的,受保护的数据成员仍然是那样,或者当从高级语言更改为汇编时它们都是公共的?

标签: c++assembly

解决方案


是和否。大多数情况下不是。

私有成员和受保护成员实际上是编译时的事情。它引导编译器帮助你不要在代码中犯愚蠢的错误。编译器通过拒绝生成违反限制的汇编代码来做到这一点。

所以在生成的可执行文件中没有违反规则的代码,因为这样的代码永远不会被成功编译。从这个意义上说,限制仍然存在。

但是在组装或硬件级别上,没有什么比私有或受保护的了。它只是字节。如果您要直接在汇编中编写代码,您可以读取所有私有 C++ 变量,没有什么能阻止您。


推荐阅读