[英]C++ Access memory violation
嘗試實例化時出現訪問內存錯誤:
Ferma(long _id, int _supr, int _nrp, Produs *_produse) :idFerma(_id),suprafata(_supr),nrproduse(_nrp){
for (int i = 0; i < this->nrproduse; i++)
produse[i] = _produse[i];
nrFerme++;
}
這是該類的構造函數; Visual Studio將我引導到重載operator =的第二行,這是導致錯誤的原因;
Produs &operator=(const Produs p){
this->pret = p.pret;
this->stoc = p.stoc;
this->denumire = new char[strlen(p.denumire) + 1];
strcpy(this->denumire, p.denumire);
return *this;
}
這是重載運算符=
Ferma f3(55, 1500, nr, prod);
我已經從文件中讀取了prod數組,看起來還可以;順便說一句,我知道我不應該使用char *,但這是我必須這樣做的方式..因此,任何幫助都將不勝感激
您的賦值運算符進行復制
Produs &operator=(const Produs p){
在源實例中,您的副本構造函數是否正確實現?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.