设为首页 加入收藏

TOP

effectiveC++(八)(四)
2010-12-26 23:03:45 】 浏览:10906
Tags:effectiveC
样:
void * base::operator new(size_t size)
{
  if (size != sizeof(base))             // 如果数量“错误”,让标准operator new
    return ::operator new(size);        // 去处理这个请求
                                        //

  ...                                   // 否则处理这个请求
}

“停!”我听见你在叫,“你忘了检查一种虽然不合理但是有可能出现的一种情况——size有可能为零!”是的,我没检查,但拜托下次再叫出声的时候不要这么文绉绉的。:)但实际上检查还是做了,只不过融合到size != sizeof(base)语句中了。c++标准很怪异,其中之一就是规定所以独立的(freestanding)类的大小都是非零值。所以sizeof(base)永远不可能是零(即使base类没有成员),如果size为零,请求会转到::operator new,由它来以一种合理的方式对请求进行处理。(有趣的是,如果base不是独立的类,

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇effectiveC++(九) 下一篇effectiveC++(七)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目