Pereiti prie turinio

Dinaminis konteineris konteineryje C++


Rekomenduojami pranešimai

Sveiki, noriu issiaiskinti su dinaminiais masyvais klasese.

Tatkime apsirasau klase su vienu dinaminiu masyvu:

 

class Studentas{
private:
string fakultetas, vardas, grupe;
int *balai;
int nmax;
int n;
void KeitiMasyva(int kiek);
public:
Studentas(int nmax = 0);
~Studentas();

void DetiFakultetas(string fakultetas);
void DetiVardasGrupe(string vardas, string grupe);
void DetiBalai(int i, int paz){balai[i] = paz;}

string ImtiFakultetas(){return fakultetas;}
string ImtiVardas(){return vardas;}
string ImtiGrupe(){return grupe;}
int Imti(int i){return balai[i];}
};

Studentas::Studentas(int nmax){
if(nmax > 0){
	balai = new int [nmax];
}
}

void Studentas::KeitiMasyva(int kiek){
 if(kiek > nmax){
	 int *Naujas = new int[kiek];
	 for(int i=0; i<n; i++)
		 Naujas[i] = balai[i];
	 delete [] balai;
	 balai = Naujas;
	nmax = kiek;
 }
 else if(kiek < nmax){
	 int *Naujas = new int[kiek];
	 for(int i=0; i<n; i++)
		 Naujas[i] = balai[i];
	 delete [] balai;
	 balai = Naujas;
	 n = nmax = kiek;
 }
}

Realizuoju destruktoriu

Studentas::~Studentas(){
if(balai){
	delete []balai;
	balai = NULL;
}
}

void Studentas::DetiFakultetas(string fakultetas){
 Studentas::fakultetas = fakultetas;
}

void Studentas::DetiVardasGrupe(string vardas, string grupe){
 Studentas::vardas = vardas;
 Studentas::grupe = grupe;
}

Kita klase, kurioje saugomi Studentai:

class Fakultetas{
private:
Studentas *Stud; // studentu masyvas
int n; // masyvo dydis
int nmax; // maksimalus masyvo dydis
public:
Fakultetas():n(0), Stud(NULL), nmax(0){}
Fakultetas(int n, int nmax):
	n(n), nmax(nmax){}
~Fakultetas();
void DetiMas(Studentas S){Stud[n++] = S;}
Studentas Reiksme(int i){return Stud[i];}
void Didinti(int n);
};

Fakultetas::~Fakultetas(){
if(Stud){
	delete[] Stud;
	Stud = NULL;
}
}

Ar viskas mano klasese tvarkoje? Kaip su Fakultetas klase, ar nepamirsau kazkokiu funkciju, kad viskas vyktu tvarkoje?

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...