Kol W1, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp), kolos 2


Kolokwium II Poprawkowy

Dla podanego programu odnaleźć błędy i poprawić:

class A

{

protected:

char str[128];

public:

A() { memset(str, 0, sizeof(str)); }

A(char *sstr){ strcpy_s(str, sizeof(str), sstr); }

};

class B

{

protected:

A *pA;

public:

B(char *sstr);

B() : pA(0) {}

~B();

friend ostream & operator << (ostream &strm, const B &ob);

};

B::B(char *sstr)

{

try {

pA = new A(sstr);

}

catch(bad_alloc) {

//..................

}

}

B::~B()

{

if(pA) {

size_t dim = _msize(pA);

delete pA;

}

pA = NULL;

}

ostream & operator << (ostream &strm, const B &ob)

{

if(ob.pA) {

strm << *ob.pA;

}

return strm;

}

class D : public B

{

protected:

B tab[3];

public:

D(B *pt);

D() {}

friend ostream & operator << (ostream &strm, const D &ob);

};

D::D(B *pt)

{

for(size_t it=0; it<3; ++it)

tab[it] = pt[it];

}

ostream & operator << (ostream &strm, const D &ob)

{

strm << "D: ";

for(size_t it=0; it<3; ++it)

strm << ob.tab[it];

strm << endl;

return strm;

}

int _tmain(int argc, _TCHAR* argv[])

{

B tab_B[] = { B("aaaa"), B("bbbb"), B("cccc") };

D ob_D1(tab_B), ob_D2, ob_D3(tab_B);

cout << ob_D1 << ob_D2 << ob_D3;

ob_D1 = ob_D2;

cout << ob_D1 ;

ob_D1 = ob_D3;

cout << ob_D1;

D ob_D4 = ob_D1;

cout << ob_D4;

system("pause");

return 0;

}



Wyszukiwarka

Podobne podstrony:
Kol W2, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp), kolos 2
Tresci kursu, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp)
przyklad Zad2, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp)
po proj, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp)
przyklad kol1, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp)
Tresci kursu, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp)
mim, studia Polibuda Informatyka, III semestr, mikroprocesory i mikrokontrolery (mim)
sprawdzian z acada5, studia Polibuda Informatyka, III semestr, grafika i komunikacja człowiek - kom
sprawdzian z acada7, studia Polibuda Informatyka, III semestr, grafika i komunikacja człowiek - kom
sprawdzian z acada4, studia Polibuda Informatyka, III semestr, grafika i komunikacja człowiek - kom
mim, studia Polibuda Informatyka, III semestr, mikroprocesory i mikrokontrolery (mim)
JAiO - Projekt 3, Studia, III Semestr, Języki, Algorytmy i Obliczenia, Projekty
JAiO - Projekt 4, Studia, III Semestr, Języki, Algorytmy i Obliczenia, Projekty
W7-dynamika bryly sztywnej, Studia, SiMR, II ROK, III semestr, Mechanika Ogólna II, Mechanika 2, 3 k
Wybrane skl zywnosci, studia, Maja, Studia, II rok, III semestr, Chemia Żywnosci, Sciagi ChŻ
sciagafizykabudowli, Studia Budownictwo polsl, III semestr KBI, Fizyka budowli, Fizyka Budowli

więcej podobnych podstron