Lan*_*ker 0 c++ encapsulation private
我有一个简单的程序:
class Element
{
public:
Element(void) { m_iVal = 56789;}
~Element(void) {};
private :
int m_iVal;
};
Run Code Online (Sandbox Code Playgroud)
变量m_iVal是私有的,这从概念的角度(继承,...)造成了限制。
然而,虽然是私有的,但仍然可以访问它的内容。
有没有办法禁止对变量(或堆区域)的物理访问,以便对该私有区域的任何访问都将导致内存访问冲突。
访问保护;public/ protected/private是纯粹的编译时的事情。它的存在是为了防止简单的错误。它不是运行时保护机制。
一旦你的代码已通过编译器的第一阶段,public,protected并private不再存在于所有。在生成的二进制文件中,没有任何痕迹。