例如,
Class Test {
private:
int x;
public:
int y;
}obj;
现在可以访问obj.y,但不能访问obj.x
我的问题是编译器如何限制对私有(private)数据的访问?
此外,如何在 C 结构中实现访问说明符?
最佳答案
编译器拥有关于翻译单元(源文件和所有包含的头文件)中所有代码的所有信息,因此可以跟踪哪些成员是私有(private)的,哪些不是。 编译器如何无关紧要,不同的编译器可以不同地实现它。
私有(private)/公共(public)成员是一个纯粹的编译时概念,编译后的可执行代码中没有任何强制执行的内容。
关于c++ - 编译器如何区分 C++ 中的私有(private)数据和公共(public)数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19049298/