私人会员在课堂外可见

时间:2015-03-20 15:02:56

标签: class c++-cli class-members

为什么当断点超出该类时,我可以在快速监视窗口中看到我班级的私人成员?

我的断点在ConsoleApplication.cpp中 我的类在XmlSignature.h中定义

我可以看到这些私人会员: Transforms_Root_element xmlDocument

这是我的班级:

ref class XmlReference
{
public:
    XmlReference(String^ URI);
    virtual ~XmlReference();

    String^ URI;
    XmlElement^ Reference_element;

    String^ ns_ds = "http://www.w3.org/2000/09/xmldsig#";

    XmlNode^ AddTransform(String^ strAlgorithm);
    XmlNode^ AddTransform(String^ strAlgorithm, String^ strParameterName, String^ strParameter);

    List<XmlNode^>^ Transforms = gcnew List<XmlNode^>;
private:

    XmlNode^ Transforms_Root_element = nullptr;
    XmlDocument^ xmlDocument;

    //Called by AddTransform
    XmlNode^ CreateTransformElement(String^ strAlgorithm);
};

这是我能看到的:

enter image description here

1 个答案:

答案 0 :(得分:1)

这是一个功能,有助于调试:-)。 编译器确保类成员可见性以强制执行面向对象的编程。正如@Medinoc观察到的那样,.net运行时还可以保护类的私有和受保护内存不被其他上下文访问。

在任何情况下,调试器都可以完全访问内存,并可以显示所有成员内容。