我知道如何防止类的堆分配(将new和new []设为私有(private))。
我知道如何防止堆栈和静态分配(将析构函数设为私有(private))。

我想知道在编译时是否只允许静态分配?

最佳答案

不。抱歉。原因是静态分配对类型的要求与自动分配完全相同;无法区分。

但是,您可以阻止客户端代码实例化您的类型,并提供对由类型自己的代码创建的一个或多个实例的访问。

通常,人们通常认为单例等是一个绝妙的主意,也许它赋予了某种控制感,无论如何,但是无论如何,随后发生的事情是,在某个时候需要更多的通用实例化,而所有的工作不仅仅是浪费但随后会主动产生更多……而完全不必要的……工作。

因此,对于过早的优化,一般建议不要这样做。

尽管在某些情况下它可能是正确的解决方案。

干杯,……

10-07 12:30
查看更多