0
我想写我自己的矢量类,使用重载进行某些操作,如输入/输出元素和push_back()
。运算符超载
我该如何重载加法运算符?现在,我把它cout
数组的各个元素相加两个向量中的每个元素之后,但我想这样做: myVector c = vec + vec2
然后cout << c << endl
请问我需要写我自己的副本构造函数?
myVector::myVector(myVector& v)
{
cout << "Copy constructor called." << endl;
this->array = new int[v.maxsize];
this->array = v.array;
cout << "Returning from Copy constructor." << endl;
}
这是我的重载加法运算符:
myVector myVector::operator+(myVector& a)
{
cout << "Addition operator overloaded" << endl;
myVector result;
result.array = new int[a.maxsize];
for (int i = 0; i < a.size(); i++)
result.array[i] = this->array[i] + a.array[i];
result.setSize(a.size());
return result;
}
下面是完整的源代码: http://pastebin.com/raw.php?i=9nkWVLwy
我创建了一个新的'myVector'对象并将其返回。但我得到一个运行时错误。 –
@trojansdestroy不,他们不。那个参考文献指的是什么?他们通常会以价值回报。 – juanchopanza
你如何处理两个向量的大小不同?另外,你是否遵循[三规则](http://en.wikipedia.org/wiki/Rule_of_three_%28C++_programming%29)? – juanchopanza