[英]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.