2015-10-15 151 views
1

我正在編寫一個程序來處理不同的操作集合,我給出的一些函數應該返回對象。 SoS是頭文件中聲明的對象,其數據成員m_vos(字符串向量)和布爾值。在函數中,我正在創建新的對象和一個新的集合。我如何將背景與物體綁定?C++如何從一個函數正確返回一個對象

這是我有:

SoS SoS::makeIntersection(const SoS& B) const { 
    SoS intersection; 
    vector<string> set1; 
    vector<string> set2; 
    vector<string> set3; 

    set1 = this->m_vos; 
    set2 = B.m_vos; 

    //int totalElements; 
    //totalElements = (set1.size() + set2.size()); 

    sort(set1.begin(), set1.end()); 
    sort(set2.begin(), set2.end()); 
    set_intersection(set1.begin(),set1.end(),set2.begin(),set2.end(),back_inserter(set3)); 

    return intersection; 
} 

回答

1

set3完全和直接建設路口到對象:

set_intersection(set1.begin(), 
       set1.end(), 
       set2.begin(), 
       set2.end(), 
       back_inserter(intersection.m_vos)); 
1

要從函數返回一個對象,只需定義功能返回一個對象。您需要在函數內部定義(或傳入)對象,根據需要對其進行修改並返回。下面顯示了一個與您的問題相關的示例。

Object myFunction() { 
    // object to return 
    Object myObject; 
    // set of strings 
    std::set<string> mySet; 
    // convert to vector 
    std::vector<string> myVector(mySet.begin(), mySet.end()); 
    // assign to object (the actual setting will be different) 
    myObject.setVector(myVector); 
    // return object 
    return myObject; 
} 
+0

那是什麼我已經有雖然。如何將數據成員鏈接到對象? –

+0

@MthetheHHanson您是否需要將該集合轉換爲一個字符串矢量,然後將該字符串矢量分配給該對象的字符串矢量? – brandaemon

+0

是的,這正是我需要做的。 –