你为什么要让运营商`new`私有?

The*_*ist 6 c++ overloading new-operator

我正在使用OpenSplice DDS,在那里,几乎所有C++类(我使用的基本类,如果重要的话我可以提及它们)将new运算符重载为私有(以防止用户使用它们).我不明白,为什么有人这样做?有人可以提供一些显示这种必要性的例子吗?

我为什么需要new:因为大多数这些类都没有默认的构造函数,所以我需要稍后在我的实现中通过a初始化它们unique_ptr.

简单的伎俩:另一方面......我很容易欺骗这个!我可以用另一个类包装这个类,并使用new我想要的所有,对吧?因此,我不明白动机,感觉就像糟糕的风格.有人能解释一下吗


编辑:

只是为了澄清:提供一个无法逃脱的好例子是一个很好的答案.对于所有看到new运营商私有的人都会有所帮助.

小智 3

许多嵌入式 C++ 需要保证系统启动后不会进行动态分配。航空、汽车和医疗器械行业经常有这种要求。有关此类编码标准及其背后的原理,请参阅以下链接: