C++ 如何放置函数';s将值返回到新变量c++;

C++ 如何放置函数';s将值返回到新变量c++;,c++,class,C++,Class,所以我想通过将函数(split)返回值(类型为(vector strin?,string))放置到类的变量reunat_(vector)和palankuva_(string),来修改类的私有部分信息。如何以及在何处定义变量“tallennettava”,以便将值函数“split()”首先返回给“tallennettava”变量,然后从该变量将值复制到类“variables reunat_uuu”和palankuva_uu中。下面看到的代码是关于变量“tallennettava”空变量reunat

所以我想通过将函数(split)返回值(类型为(vector strin?,string))放置到类的变量reunat_(vector)和palankuva_(string),来修改类的私有部分信息。如何以及在何处定义变量“tallennettava”,以便将值函数“split()”首先返回给“tallennettava”变量,然后从该变量将值复制到类“variables reunat_uuu”和palankuva_uu中。下面看到的代码是关于变量“tallennettava”空变量reunat和kuva的,在我尝试将“split()”函数返回值赋给它之后,由于“tallennettava”变量已经从空变量reunat和kuva“满”了,所以无法执行。对于非英语变量名,很抱歉:(

void Pala::tallenna_Pala(弦乐)
{
载体重组;
弦库瓦;
弦帕兰提耶多;
char-erotinmerkki;
erotinmerkki=(':');
reunat_.clear();
palankuva_.clear();
如果(komento.length()>23)
{
如果(patki_komento(komento,palantiedot)=真)
{
塔勒内塔瓦宫{reunat,kuva};
tallennettava=分裂(帕兰提耶多、埃罗廷梅尔基);
reunat=reunat;
帕兰库瓦=库瓦;

你可能想要这样的东西:

    *this = split(palantiedot, erotinmerkki);

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

因为您在Pala类中,可以访问任何Pala对象的私有成员,所以只需执行以下操作:

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

另外,永远不要做
if(cond==true)
,更喜欢
if(cond)
,因为对于
true
的值没有标准定义(
false
0
true
是其他任何东西,所以
(3==true)
可以在
时计算为
false
(3)
将被评估为
true

@jpo38:你是对的,但我愿意打赌没有其他领域。回答这样的回避问题总是很难…;-)@jpo38:尤其是在我不会说的语言中!这一个需要非常仔细的阅读,无论是在字里行间还是在字里行间。我仍然不确定我是否正确。“patki_komento”函数返回bool。有一个用于错误检查的if/else结构,如果一切顺利,它将返回true。这就是为什么我有一个if==true条件。正如所解释的,
if(patki_komento(…)==true)
是不安全的,您应该用
if(patki_komento(…)
    Pala tallennettava = split(palantiedot,erotinmerkki);
    reunat_ = tallennettava.reunat_;
    palankuva_ = tallennettava.palankuva_;