我将尝试构建一个对象数组,使用集合上的迭代器来获取值。
当前代码如下:
当前代码如下:
Object array[n]; //n is defined higher up the program
int index = 0;
for (iterator i = container.begin(), ie = container.end(); i != ie;++i) {
Object f = *i;
array[index] = f;
index++;
}
我已经抽象化了一些内容,Object和container是来自第三方库的类。
这段代码可以工作,但是Object的赋值操作符已被删除,它的拷贝构造函数是私有的。
此外:
当然,我可以轻松地构建一个类型为Object*[]的东西,但它与后面的库调用不兼容。
container没有“转换为数组”的方法或类似的东西。
Object
无法复制,那么编写Object
的人明确不希望你这样做。很可能复制操作本身也无法正常工作。所以你要么停止尝试这样做(或许可以保留一个指向Object*
数组的引用,并想办法避免那个无法使用该数组的库调用),要么你必须声明他们错误并重新编写Object
。 - Steve JessopObject
有移动构造函数和/或移动赋值运算符吗? - M.M