簡體   English   中英

關於 function (c++) 中的局部變量

[英]about local variables in a function (c++)

這是我的代碼:

void AjoutNoeudHydro(vector< NoeudHydro<PTNoeud> >* SysHydro,
                     PTNoeud NdSR,
                     char typeNd, int temps, int TabEqui[])
{
    NoeudHydro<PTNoeud> NdHydroAAjouter(NdSR,SysHydro->size(),typeNd,temps);

    //Relation Pere-Fils
    NdHydroAAjouter.SetPere(SysHydro->at(TabEqui[NdSR->prec->num]));
    SysHydro->at(TabEqui[NdSR->prec->num]).SetFils(NdHydroAAjouter);

    //Equivalences
    TabEqui[NdSR->num]=NdHydroAAjouter.GetNumero();

    //Ajout dans le vecteur
    SysHydro->push_back(NdHydroAAjouter);
    // delete NdHydroAAjouter;
}

我實際上做的是創建一個類型為NoeudHydro<PTNoeud>的新 object ,做一些調整,並將其添加到作為 function 的參數傳遞的向量SysHydro中。
但我完全不確定我在做什么。
當 function 完成時,我創建的 object 被擦除了對嗎? 它是 function 的局部變量嗎? 那么向量會保存 object 嗎?

NdHydroAAjouter是一個局部變量,因此它將在 function 返回時被破壞。

你的SysHydro->push_back(NdHydroAAjouter); 將在NdHydroAAjouter中存儲SysHydro的副本。 當您的 function 返回時,此副本仍然存在。

總而言之,您的問題聽起來像是XY 問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM