很多API接口往往要求访问原始资源,所以每一个RAII class应该提供一个“取得其所管理之资源”的办法,比如提供一个get函数。
对原始资源的访问可能经由显式转换或隐式转换。一般而言显式转换比较安全,但隐式转换对客户比较方便。
条款16:成对使用new和delete时要采用相同形式
如果你在new表达式中使用[],必须在相应的delete表达式中使用[]。如果你在new表达式中不使用[],一定不要在相应的delete表达式中使用[]。
string* stringPtr1 = new string; string* stringPtr2 = new string[100]; delete stringPtr1; // 删除一个对象 delete[] stringPtr2; // 删除一个由对象组成的数组
条款17:以独立语句将newed对象置入智能指针
假设我们有个函数用来控制的优先权,另一个函数用来在某个动态分配所得到的Wieget上进行某些带有优先权的处理: