我想構建一個函數,其中參數是對象的向量的引用。在這種情況下,對象的名稱是'obj',它是類'Example'的一個實例,它是vector類中定義的一個向量。對象有像x,y和z這樣的成員。在C++中傳遞對象的向量作爲參數
我試着用傳遞引用的原因是因爲我想通過在函數內部使用obj.x和obj.y來更改obj.z的值。
#include <vector>
#include <iostream>
using namespace std;
class Example{
public:
double x;
double y;
double z;
Example()
: x(0.0),y(0.0){
}
};
void calculate(Example &obj, int M) {
for(int i = 0; i < M; i++) {
obj[i].z = obj[i].x * obj[i].y;
}
}
int main() {
vector<Example> obj;
int N = 10;
calculate(obj, N);
}
當我運行它,我得到以下錯誤:
裏面的功能我:「類型‘樣本’不提供標運算符。」 我googled了它,看到它與運算符重載和引用的使用有關。該解決方案可能與在函數內部取消引用我的對象引用有關,但目前我無法正確管理此對象。
而第二個錯誤是在函數的外部,在main()函數內部的那一行:「沒有匹配函數調用'calculate'」。 在這裏,我假設這個錯誤與obj不僅僅是一個對象而且是一個對象的矢量有關,所以我應該改變這個參數。但是至今我還沒有能夠糾正這個問題。因此,總而言之,我想將一個對象向量傳遞給一個函數作爲參考,因爲我希望能夠更改函數內部的對象成員。
預先感謝您。
這就像一個魅力,謝謝你! :) – ozdm 2014-09-23 10:16:12