我们都知道私有(private)方法和成员只能在类内部访问,就像保护方法和成员在类和从该类派生的类内部可访问一样。但是,它的“访问控制”在哪里? «访问控制» 是在编译时发生,还是编译器添加了额外的机器代码来在运行时控制它?
我可以创建这样的类吗:
class Print
{
public:
void printPublic();
private:
void printPrivate();
};
int main()
{
Print print;
print.printPublic() // Change this to printPrivate() after compiling the code
return(EXIT_SUCCESS);
}
然后在编译代码后编辑机器代码以调用 printPrivate()
而不是 printPublic()
方法而不出错?
最佳答案
一旦你摆弄了机器代码,你就不再编译 C++,而是直接用机器代码编程。
因此,您的问题有点没有实际意义。
您可以将访问说明符视为本质上的编译时指令,但请注意,编译器可以根据它们做出优化选择。换句话说,它可能是任何一个。 C++ 标准对此也没有任何规定。
关于C++ - 方法/成员访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43117531/