条款9:避免隐藏标准形式的new
如果在类里增加一个带多个参数的operator new函数,则标准的operator new(size_t size)将会屏蔽
解决方法如下:
1. 如果写了一个多带参数的operator new函数,则也写一个和标准new同样参数的new函数
class X { private: //... public: void* operator new(size_t size, new_handler handler) { //... } void* operator new(size_t size) { return ::operator new(size); } };
2. 写带多个参数的operator new函数时,为多余的参数提供默认值
class Y { private: //... public: void* operator new(size_t size, new_handler handler = NULL) { //... } };
不积跬步无以至千里,不积小流无以成江河。