隐藏用户的受保护功能和成员?

问题描述:

我的类是事件驱动的,例如,公共mouseClick()调用受保护的onMouseClick()。隐藏用户的受保护功能和成员?

我发现,如果用户的智能感知可以在所有受保护的智能感应器上感知,那么这可能会令人费解。有什么方法可以最小化这种混淆?

谢谢

+2

要做到这一点的唯一方法是在文档中将其设置为** BIG **。 – 2010-11-14 14:58:46

+0

是的,但这不取决于你,而是由用户正确配置他的IDE。通常情况下,包括私人或受保护成员在自动完成等方面是禁用的,但如果您的类库的用户需要它,那不是由您决定(或以任何方式影响,因为这是不可能的)。 – 2010-11-14 15:01:24

+2

当intellisense *工作时,让我们感激不尽,更不用说当它意外地超出需要:) – 2010-11-14 15:02:35

C++中的成员访问控制适用于编译器,不适用于用户。如果你确实需要这些,你应该使用ABCs作为接口并通过工厂创建你的对象。通过这种方式,您可以确保最终用户无需查看代码中的任何非界面部分。

良好的intellisense实施不应该接他们。我认为没有太多的事情可以通过编程来阻止它。

The editorbrwsable属性被intellisense用来知道用户应该看到方法与否。虽然intellisense中隐藏了一个选项可以隐藏受保护的函数,但如果其他所有方法都失败了,则可以使用此选项。