为什么Visual Studio的intellisense显示私有成员和函数?

ali*_*ray 7 c++ visual-studio-2010

在Visual Studio中使用本机c ++时,即使在包含类的范围之外,intellisense也会显示私有成员和函数.这使我很难为我编写的类创建干净的API.

是否有一个原因?这可以预防吗?

AnT*_*AnT 3

那么,为什么它不应该显示私人的呢?毕竟,他们是成员,他们存在,并且可以像任何其他成员一样从某些上下文中完全访问他们。

IntelliSense 很难确定成员是否可以从此特定上下文访问,特别是如果您考虑到在大多数情况下此上下文尚未完成(用户仍在输入),这意味着一般情况下是无法对其进行分析的。

  • 智能感知非常高效,因为它可以缩小到最具体的范围。如果每次您开始键入时,它都会显示每个程序集中每个名称空间中的每个类,那么它就不会那么有效。相反,它的工作是尽可能缩小范围。它只会显示当前加载的程序集和当前导入的命名空间中的类型。选择成员时,应仅显示范围内的、可公开访问的成员。 (4认同)