C++构造函数中的Malloc

Ros*_*oss 5 c c++ constructor exception

我必须与C++类构造函数(英特尔库)中的一些C代码接口


  class A{
    A{
     x = ippiMalloc();
     if(x==NULL) ...
    }
  }
Run Code Online (Sandbox Code Playgroud)

在构造函数中使用malloc函数(intel版本).如果ippiMalloc函数没有成功,那么处理它的正确方法是什么.抛出异常?

edA*_*a-y 8

是的,例外可能是处理错误的最合适方式 - 至少它是最干净的方式.这也是"新"运营商在失败时所做的事情.

如果您的应用程序没有异常识别而不是您遇到问题.在这种情况下,类上的工厂方法可能有意义.

static A * create() { ... }
Run Code Online (Sandbox Code Playgroud)

在这里,您可以将其包装到非异常程序中,如果无法创建对象,可能会返回null.