fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class MojaKlasa
  6. {
  7. public:
  8. int test;
  9. MojaKlasa() : test(7) { cout << "MojaKlasa()" << endl; }
  10. MojaKlasa(int test) : test(test) { cout << "MojaKlasa(" << test << ")" << endl; }
  11. ~MojaKlasa() { cout << "~MojaKlasa()" << endl; }
  12. };
  13.  
  14. int main()
  15. {
  16. // alokujesz pamiec na 20 elementow
  17. char* mem = new char[sizeof(MojaKlasa) * 20];
  18. // ta sama pamiec reprezentowana jako tablica/wskaznik do elementow MojaKlasa
  19. MojaKlasa* tab = (MojaKlasa*)mem;
  20.  
  21. cout << "tab[4].test = " << tab[4].test << endl;
  22.  
  23. new (&tab[4]) MojaKlasa();
  24. cout << "tab[4].test = " << tab[4].test << endl;
  25. tab[4].~MojaKlasa();
  26.  
  27. new (&tab[5]) MojaKlasa(9);
  28. cout << "tab[5].test = " << tab[5].test << endl;
  29. tab[5].~MojaKlasa();
  30.  
  31. cout << "Wywolaj konstruktory na 20-tu obiektach:" << endl;
  32. new (tab) MojaKlasa[20]();
  33.  
  34. delete [] mem;
  35. return 0;
  36. }
Success #stdin #stdout 0s 3272KB
stdin
Standard input is empty
stdout
tab[4].test = 0
MojaKlasa()
tab[4].test = 7
~MojaKlasa()
MojaKlasa(9)
tab[5].test = 9
~MojaKlasa()
Wywolaj konstruktory na 20-tu obiektach:
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()
MojaKlasa()