如何将函数的返回值放入新变量c ++

时间:2015-09-26 10:51:27

标签: c++ class

所以我想修改Class'通过将函数(split)返回值(类型为(vector strin?,string))放置到reunat_(vector)和palankuva_(string)这些是类'变量。我如何以及在何处定义变量" tallennettava"这样我就可以分配值函数" split()"首先返回" tallennettava"变量并从那里将值复制到Class'变量reunat_和palankuva_。下面的代码可以解释变量" tallennettava"空变量reunat和kuva以及我尝试分配" split()"函数返回值,它不能完成,因为" tallennettava"变量已经满#34;从空变量reunat和kuva。抱歉非英语变量名称。 :(

void Pala::tallenna_pala(string komento)
{
    vector<string> reunat;
    string kuva;
    string palantiedot;

    char erotinmerkki;
    erotinmerkki = (':');
    reunat_.clear();
    palankuva_.clear();

    if ( komento.length()> 23)
    {
        if ( patki_komento(komento, palantiedot)==true ) 
        {
            Pala tallennettava {reunat, kuva};
            tallennettava = split(palantiedot,erotinmerkki);

            reunat_ = reunat;
            palankuva_ = kuva;
            cout << reunat.at(1)<<endl;
        }
        else 
        {
            cout << "Virheellinen syote" << endl;
        }
    }
}

2 个答案:

答案 0 :(得分:0)

你可能想要这样的东西:

    *this = split(palantiedot, erotinmerkki);

我这样说是因为split似乎返回了可以构建Pala的内容,因此将其分配给*this比捕获结果更容易然后逐个复制字段。

答案 1 :(得分:0)

当你在Pala类中时,你可以访问任何Pala对象的私有成员,所以只需这样做:

    Pala tallennettava = split(palantiedot,erotinmerkki);
    reunat_ = tallennettava.reunat_;
    palankuva_ = tallennettava.palankuva_;

另外,永远不要if ( cond == true ),更喜欢更if ( cond )更安全,因为truefalse 0的价值没有标准定义},true是其他任何内容,因此当( 3 == true )评估为false时,( 3 )可以评估为true