(type *p) = malloc(sizeof(type));
construct(*p).
new 失败和malloc失败返回是一样的. 只不过C++对指针做了编译级别的类型识别.
new 扯淡之处在于把 construct(*P)加进去, 使得new 被原子化了. 你问的应该是construct(*P)失败的情况.
通常来说, 第一步成功, 就认为new 成功了 .第二步, 自己定义处理方法.
C++确实是非常恶心扯淡的玩意
(type *p) = malloc(sizeof(type));
construct(*p).
new 失败和malloc失败返回是一样的. 只不过C++对指针做了编译级别的类型识别.
new 扯淡之处在于把 construct(*P)加进去, 使得new 被原子化了. 你问的应该是construct(*P)失败的情况.
通常来说, 第一步成功, 就认为new 成功了 .第二步, 自己定义处理方法.
C++确实是非常恶心扯淡的玩意
new和malloc返回失败是系统的问题,哈,系统不会因为你是c++所以让你不失败,你是c,就让你失败。能问这个问题,显然不是在做"hello world "的程序。楼主的问题还是值得讨论的。不过重点显然不是在讨论如何回避失败,而是对失败的应对原则以及应对方法。这里有两者编程思想,一种是,处理对象是逻辑模块,一种处理对象是空间模块。c语言,是面向模块的,实际是面向逻辑模块的,空间是服务于模块的,面向对象是反过来,它首先看的是“数据”对象,而处理逻辑是服务于这类处理数据对象的。
上面两种思维方式没有谁对谁错,看面向什么问题了。哈。