关闭

More Effective C++之8

650人阅读 评论(0) 收藏 举报
条款8:了解不同意义的new和delete

普通的new先包括这么几种,new operator,这种是操作符独有的而并非可重载,它的例子是string str = new string(“test”); 如例子所示,这种new是不可以重载的。返回的是具体的对象。所不可重载的重要原因是它能调用构造函数。

operator new是一种可以重载的new;与之对应,它丧失了调用构造函数的权利,与此同时,返回的类型是void*.
与此同时,另外一种new是placement new。它的特点是在已有内存的基础上调用构造函数。

关于数组方面,new和单一对象方面类似。让我觉得不满的是,这个地方讲的不是特别详细。如果有兴趣的话,可以参见《C++编程思想》和《Inside C++ Object Model》。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:613078次
    • 积分:9793
    • 等级:
    • 排名:第1787名
    • 原创:340篇
    • 转载:141篇
    • 译文:0篇
    • 评论:69条
    最新评论