我是一名C++初學者,我正在嘗試編寫一個方法,它將採用兩個向量並將它們的內容組合在一起。在C++中添加矢量
例如, v1 {1,2,3} + v2 {2,4,6}應該產生v3 {3,6,9}。
這裏是我的代碼看起來像現在:
Vec Vec::operator+(const Vec& original){
if(mySize != original.mySize){
throw invalid_argument ("No!");
}
Item* sumVector = new Item(mySize);
for(unsigned i=0; i<mySize; i++){
sumVector[i] = myArray[i] + original.myArray[i];
}
return * sumVector;
}
但是,這是行不通的,因爲我的說法v3.getItem(0)== 3失敗。如果你回答這個問題,我相信你已經知道了,但Vec是我的一個類的名字,Item是一個typedef double。
'sumVector'是一個指針(它不需要,它不應該是這樣。)想一下當運算符[]在應用於指針時的作用。 – juanchopanza 2014-09-29 20:31:15
哦,沒有內存泄漏操作員!你爲什麼按價值返回一個新對象? – Borgleader 2014-09-29 20:31:50
嘿歡迎_ @ TheFaceOfBlue_!在開始推出自己的產品之前,使用['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)怎麼樣?有很多障礙和陷阱來完成它,並且幾乎從不值得這樣做,以獲得專有的實現。 – 2014-09-29 20:35:46