繁体   English   中英

如何从函数正确返回对象

[英]c++ How to properly return an object from a function

我正在编写一个程序来处理带有集合的不同操作,并且给出的某些函数应该返回对象。 SoS是在头文件中声明的对象,并且具有数据成员m_vos (字符串的向量)和布尔值。 在函数中,我正在创建新对象和新集合。 如何将套装与物件绑在一起?

这就是我所拥有的:

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;
}

要从函数返回对象,只需将函数定义为返回对象。 您需要在函数内部定义(或传递)一个对象,根据需要对其进行修改,然后将其返回。 与您的问题相关的示例如下所示。

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;
}

完全set3并将交集直接构建到对象中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM