我的一個C++任務有問題。它更多的是一個理論問題。下面是代碼:查找類拷貝構造的問題
//a class implementation
class IntArrays {
public:
IntArrays(int n): data(new int[n]), size(n) { }
~IntArrays() { delete[] data; };
const int& operator[](int n) const
{ return data[n]; }
IntArrays(const IntArrays& ar):
data(new int[ar.size]),
size(ar.size) {
std::copy(data, data + size, ar.data);
}
private:
int* data;
int size;
};
//a driver
int main()
{
IntArrays a(100);
IntArrays b = a; // Problem!
return 0;
}
In 1-2 sentences, explain why the second line of the driver program is problematic.
我真的不知道是司機的第二行有什麼錯誤,因爲當我運行它的罰款。起初我以爲是因爲=運算符沒有超載,但IntArrays b = a是使用複製構造函數,所以不是它。我完全困惑,請幫助。如果我沒有得到答案,這將非常困擾我。
在此先感謝。
確實來自源這個問題,你一定是準確可靠?是否有人可能會錯誤地認爲'IntArrays b = a;'會使用'operator ='? – aschepler 2011-03-24 00:31:06
這是一個分配問題,我直接從word文件中複製它。我之前搜索了一下,它使用IntArrays的複製構造函數b = a;但它從頭開始創建。 – Pete42 2011-03-24 00:36:47