operator delete(void* size_t)第二个形参如何用呢
operator delete(void*, size_t)第二个形参怎么用呢?说是保存继承层次中实际类型大小,但释放内存又用不着。
operator delete(void*, size_t)第二个形参怎么用呢?
说是保存继承层次中实际类型大小,但释放内存又用不着。
[解决办法]
特殊的语法是为特殊的场合设定。
你又不可能遇到这样的场合的,折腾它又何必呢。
[解决办法]
卖萌。。。明明?
书没看过不清楚。不过operator new/delete非标准库规定的签名的具体语义取决于实现作者……(即便是标准库给出的都可以替换定义)。
至于allocator……ISO C++有allocator requirements决定接口形式:调用a.allocate(n, u)的u作为unspecified的hint倒是可以完全不用;调用a.deallocate(p, n)的n必须和allocate里的对上。只不过用::operator delete这种实现确实用不上n而已,因为::operator new必须已经知道n了。