- 2.4. 作用域数组
2.4. 作用域数组
作用域数组的使用方式与作用域指针相似。 关键不同在于,作用域数组的析构函数使用 delete[] 操作符来释放所包含的对象。 因为该操作符只能用于数组对象,所以作用域数组必须通过动态分配的数组来初始化。
对应的作用域数组类名为 boost::scoped_array,它的定义在 boost/scoped_array.hpp 里。
- #include <boost/scoped_array.hpp>
- int main()
- {
- boost::scoped_array<int> i(new int[2]);
- *i.get() = 1;
- i[1] = 2;
- i.reset(new int[3]);
- }
- 下载源代码
boost:scoped_array 类重载了操作符 operator 和 operator bool()。 可以通过 operator 操作符访问数组中特定的元素,于是 boost::scoped_array 类型对象的行为就酷似它所含的数组。
正如 boost::scoped_ptr 那样, boost:scoped_array 也提供了 get() 和 reset() 方法,用来返回和重新初始化所含对象的地址。
