【发布时间】:2020-03-22 21:54:39
【问题描述】:
如果静态需要在类外部访问(例如单例),可以选择公共静态而不是私有静态,而当不需要公开函数时首选私有静态(否则未命名的命名空间就可以了) - 在这种情况下它只能通过静态成员函数或其他非静态成员函数访问
但是我试图了解为什么要选择私有静态而不是私有成员函数的核心思想? 当然,两者都可以访问类的私有成员(或任何传递的对象),静态成员明确要求传递一个对象,但是为什么我不能通过将其设为私有非静态来保持我的设计开放成员函数,即使它不需要访问私有成员(就像静态成员函数一样)。这样,即使将来我需要访问一些私人成员,我也可以避免将静态内存函数转换为非静态内存函数 - 我知道这不是什么大问题/变化,但仍然有人可以给我一个关于何时和为什么要选择一个而不是另一个?
【问题讨论】:
-
非静态成员函数需要传递一个额外的 pointer-to-instance 参数,这代表了一些开销。在某些性能关键型应用中,这种开销可能很重要。