C++ - 方法/成员访问

标签 c++ compilation private public

我们都知道私有(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/

相关文章:

c++ - boost::线程编译错误

c++ - Google API CPP 客户端 - 使用服务帐户

c++ - std::discrete_distribution 的意外行为

c++ - 哪些存储类型不完整的 STL 数据结构可以用作类成员?

c++ - 项目符号 2.81 : Unable to find installed header?

compilation - 如何在Windows上的SCons中导出具有备用扩展名的程序

php - 检查IP地址是否是私有(private)的

c++ - 编译 sfml c++ (ubuntu)

git - 自动将更改推送到git存储库中的一个文件夹到github?

java - java 类中变量的私有(private)作用域与默认作用域 - 任何性能问题