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

Mal*_*ian 9 c++ intellisense private-members visual-studio

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

编辑:

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

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

idu*_*olz 6

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

class SomeClass{
public:
   int myPublicMemeber;
private:
   int _myPrivateMember;
};
Run Code Online (Sandbox Code Playgroud)


Cod*_*ray 4

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

您只需依靠锁定图标来表明它们是私有的,因此无法访问。您知道, IntelliSense 窗口中的所有这些小图标确实都有其含义

但看起来这个功能可能会出现在 Visual Studio (VS11) 的下一版本中。MSDN 说

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

尽管这很愚蠢,但我对此也很兴奋。还有其他很酷的东西,比如更好的语法突出显示和引用突出显示。开发者预览版已经发布,因此您可以根据需要尝试开始使用它,但它可能还没有准备好迎接黄金时段。诚然,这是一个糟糕的升级理由......

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