更新时间:2015-11-14 21:38:00浏览次数:1+次
他们不同的地方关键不同在于,作用域数组的析构函数使用 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方法,用来返回和重新初始化所含对象的地
址。
相关资讯