如何隐藏班级的私人成员?

时间:2012-01-27 00:05:44

标签: c++ visual-studio intellisense private-members

我一直在使用visual studio,每次使用Classes时都会让我很烦。问题是,当我创建一个类的对象时,我倾向于看到私有成员属于该类而我不想,因为如果我创建一个包含10+私有变量的类,那么它将是一场噩梦,必须有隐藏私人会员的方法, 如果有办法,请与我分享? 谢谢:))

编辑:

这张图片可以帮助您理解我在说什么,

例如这里我有2个LinkedList类的私有变量(curSize和head)我将无法从main改变它们,所以没有必要看到它们(是吗?) 如何在不改变代码的情况下隐藏它们?在Visual Studio中是否有设置?

3 个答案:

答案 0 :(得分:6)

这可能不是最好的答案,也不是一个很好的答案,但它完成了工作,如果你能接受一个小的语法改变,那么它肯定会起作用。我从观察stdstd::vector中学到的一个技巧是,它们表示前缀为_的私有成员,从而迫使所有私有成员进入智能感知的最底层。它不会将它们从列表中删除,但会将它们全部移动到最底部,这样当您滚动列表时它们就不会打扰您。这是一个例子:

class SomeClass{
public:
   int myPublicMemeber;
private:
   int _myPrivateMember;
};

答案 1 :(得分:4)

您可以使用区域,如下所示:

class MyClass {

    #region Private Variables

    private int x;
    private int y;
    private int z;

    #endregion

}

Visual Studio将在-行旁边显示一点#region。单击它可隐藏变量。

答案 2 :(得分:4)

不幸的是,在当前版本的Visual Studio中这是不可能的。在C ++中,IntelliSense列表不会按可访问性或范围进行过滤。因此,即使您的代码实际上无法访问私有成员,也会显示私有成员。也没有设置可以调整此行为。

您只需依靠锁定图标来表明它们是私有的,因此无法访问。您知道,智能感知窗口do have a meaning中的所有这些小图标。

但看起来这个功能可能会进入下一版本的Visual Studio(VS11)。 MSDN says

  

列出成员增强功能。当您在代码编辑器中键入代码时,将自动显示“列表成员”下拉列表。过滤结果,以便在您键入时仅显示相关成员。您可以在“文本编辑器”,“C / C ++”,“高级”下的“选项”对话框中控制“成员列表”使用的过滤逻辑类型。

虽然很傻,但我对此感到非常兴奋。与其他很酷的东西一起,如更好的语法高亮和参考突出显示。 Developer Preview已经出来了,所以如果你愿意,你可以尝试开始使用它,但它可能还没有为黄金时间做好准备。这无疑是升级的一个糟糕原因...

或者,您可以投资Visual Assist X,这是一个可用于多个Visual Studio版本的扩展,它为C ++ IDE添加了许多便利功能,并且有针对性地改进了IntelliSense过滤。它不是免费的,但它对于C ++开发人员来说非常棒,如果我不是穷人/破产/便宜,我肯定会自己买。

相关问题