我正在使用
OpenSplice DDS,在那里,几乎所有的C类(我使用的基本类,如果重要的话我可以提及它们)将新运算符重载为私有(以防止用户使用它们).我不明白,为什么有人这样做?有人可以提供一些显示这种必要性的例子吗?
为什么我需要new:因为这些类中的大多数都没有默认的构造函数,我需要稍后在我的实现中通过unique_ptr初始化它们.
简单的伎俩:另一方面……我很容易欺骗这个!我可以用另一个类包装这个类,并使用我想要的全新,对吧?因此,我不明白动机,感觉就像糟糕的风格.有人能解释一下吗
编辑:
只是为了澄清:提供一个无法逃脱的好例子是一个很好的答案.对于所有看到新操作符私有的人都会有所帮助.
解决方法
许多嵌入式C需要保证在系统启动后才进行NO动态分配.航空,汽车和医疗设备行业通常都有此要求.有关此类编码标准及其背后的理性,请参阅以下链接:
> http://www.stroustrup.com/JSF-AV-rules.pdf
> http://www.qa-systems.com/tools/qa-misra/