FANDOM


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:

  1. klasa nie ma wirtualnych metod i nie dziedziczy z klasy posiadającej wirtualne metody,
  2. wszystkie klasy bazowe mają trywialny konstruktor,
  3. wszystkie składowe klasy mają trywialne konstruktory.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Więcej z Fandomu

Losowa wiki