Konstruktory Trywialne
W przypadku, gdy programista nie zdefiniował żadnego konstruktora kompilator generuje domyślny konstruktor dla każdej klasy/struktury. Niekiedy jednak generowanie takiego konstruktora przez kompilator jest zbędne np.:
class Pusta{}; class Test{ public: int a; char c; }; int main(){ Test t; Pusta p; t.a = 0; t.c = 'a'; return 0; }
Obiekty typu Pusta lub Test mogą zostać utworzone bez wywoływania konstruktora. O takich konstruktorach mówimy, że są trywialne, co oznaczacza, że aby utworzyć obiekt nie musimy go wywoływać. Klasa/struktura ma trywialny konstruktor jeśli wszystkie poniższe warunki są spełnione:
- klasa nie ma wirtualnych metod i nie dziedziczy z klasy posiadającej wirtualne metody,
- wszystkie klasy bazowe mają trywialny konstruktor,
- wszystkie składowe klasy mają trywialne konstruktory.
wersja strony: 2, ostatnia edycja: 19 Mar 2010 16:18