2017-01-10 53 views
-2

我是一個總新手!我正在編寫一個使用單獨文件的程序。在主文件中,Ive製作了一個矢量來存儲來自放置在單獨標題中的結構的信息。我在一個單獨的文件中構造了一個函數來添加結構中的對象。我的問題是,我無法弄清楚如何從我的函數返回對象在主文件中的向量。請原諒我拼寫錯誤!返回從一個函數向量的值

這是我在主文件載體,但之前的主():
vector<Person> persons;

這是我的函數:

vector <Person> add(vector <Person> persons) 
{ 
     cin.get(); 
     Person tmpPerson; 
     cout << endl; 
     cout << "Add user information!" << endl; 
     cout << "Firstname: "; 
     getline(cin, tmpPerson.firstName); 

     cout << "Lastname: "; 
     getline(cin, tmpPerson.lastName); 

     cout << "Weight in kg (x.x): "; 
     cin >> tmpPerson.weigth;   
     //cin.get(); 

    persons.push_back(tmpPerson); 
+1

這段代碼的確切問題是什麼?例如:會發生什麼,你會得到什麼錯誤,... – UnholySheep

+5

你的代碼是不完整的,你不提供Person類的定義,甚至缺少「do」的尾括號。請張貼[最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve) – user

+0

通過引用傳遞人員,而不是通過值並返回引用(如果您希望使用「add」函數在鏈中也返回一個引用而不是值)。無論如何,它看起來像你需要先學習一些C++。 – pSoLT

回答

2

沒有這樣做的必要。只需按引用傳遞的載體功能:

void add(vector<Person>& persons) { 
    .... 
    persons.push_back(tmpPerson); 
} 

persons向量將被傳遞給函數by reference,這意味着你將實際工作的原件。

+0

謝謝!要嘗試一下! :) – bobasboll

+0

工作就像一個魅力!非常感謝你! :) – bobasboll