【发布时间】:2011-04-23 10:38:21
【问题描述】:
我必须与来自 C++ 类构造函数(英特尔库)的一些 C 代码交互
class A{
A{
x = ippiMalloc();
if(x==NULL) ...
}
}
在构造函数中使用了 malloc 函数(intel 版本)。如果 ippiMalloc 函数不成功,那么正确的处理方法是什么。抛出异常?
【问题讨论】:
-
Ippi(集成性能基元)
-
警告如果您不熟悉此操作:如果有第三方智能指针可用于您想要的所有权语义,可能是
shared_ptr,然后使用它来代替原始指针。否则,A 应该是一个专门用于管理x的分配和释放的类。这不仅仅是空想的“关注点分离是一种很好的做法”:编写一个负责管理多个资源的异常安全类非常尴尬,即使只有一个资源也有点繁琐...... -
...所以未能分离关注点不仅会导致设计欠佳,而且很可能会导致您现在编写损坏的代码。
标签: c++ c exception constructor