【发布时间】:2012-07-16 13:20:35
【问题描述】:
为什么 C++ 中的类必须声明它们的私有函数?有实际的技术原因(它在编译时的作用是什么)还是仅仅是为了一致性?
【问题讨论】:
-
您是在问为什么必须声明函数本身,还是在问为什么必须为这些函数说
private? -
@GManNickG 第一个。我只是不知道为什么包括我的 header 在内的其他类必须知道它的私有函数
-
private和virtual是正交概念。一个函数是private的事实并不意味着它不是virtual(事实上,有一个完整的习惯用法是onlyprivatevirtual和public非虚拟成员函数),所以是的,存在会影响 vtable。 -
@DavidRodríguez-dribes 好点。我实际上不知道虚拟私有函数可以在子类中被覆盖,并让它们的基类调用新版本而不暴露可调用性(这甚至是一个词吗?)
-
@Ancurio:你想要的词是“可访问性”。
标签: c++ class function private declaration