konstruktor & destruktor Flashcards

1
Q

Vysvětlete, jak vznikají objekty třídy, pojem konstruktor a principy práce s ním v C++

A
  • Objekty vznikají jako instance třídy
  • Chování při vzniku instance je definováno konstruktorem
  • Konstruktor je metoda bez návratového typu a jeho jediným úkolem je vytvořit a definovat hodnoty atributů objektu
  • Je volán automaticky při vzniku nové instance
  • Může jich být definováno více (přetěžování metod) - rozlišeny podle vstupních parametrů
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vysvětlete, jak zanikají objekty třídy, pojem destruktor a principy práce s ním v C++.

A

Destruktor specifikuje chování při zániku instance
- Objekty mohou zanikat více způsoby:
- Destruktor voláme sami v bloku programu
- Destruktor se zavolá automaticky při ukončení programu
- V případě, že deklarujeme novou instanci třídy dynamicky, je destruktor volán při volání operátoru delete
- Chování destruktoru můžeme definovat stejně jako konstruktoru

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

staticka deklarací objektů

A

Při statické deklaraci objektu je celý objekt uložen v zásobníku. Objekty jsou vytvářeny při vstupu do oblasti platnosti a jsou automaticky zničeny po opuštění daného bloku nebo funkce. Statické objekty se inicializují automaticky na výchozí hodnoty, pokud nejsou definovány vlastní konstruktory.

При статическом объявлении объекта весь объект хранится в стеке. Объекты создаются, когда они попадают в область действия, и автоматически уничтожаются при выходе из блока или функции. Статические объекты инициализируются автоматически значениями по умолчанию, если не определены пользовательские конструкторы.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

dynamicka deklarací objektů

A

Při dynamické alokaci je v zásobníku uložen pouze ukazatel na adresu v haldě, kde je objekt uložen. Objekty jsou vytvářeny za běhu programu a existují, dokud nejsou explicitně uvolněny. Mají explicitní životnost, která není omezena na daný blok nebo funkci. Inicializace dynamických objektů musí být provedena buď konstruktorem, nebo manuálně po vytvoření objektu.

При динамическом распределении в стеке хранится только указатель на адрес в куче, где хранится объект. Объекты создаются во время выполнения и существуют до тех пор, пока их явно не освободят. Они имеют явное время жизни, не ограниченное определенным блоком или функцией. Инициализация динамических объектов должна выполняться либо конструктором, либо вручную после создания объекта.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Kdy potřebujeme deklarovat a definovat destruktor?

A
  • Pokud deklarujeme instanci třídy dynamicky
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Co jsou výchozí konstruktory a destruktory a k čemu je potřebujeme?
Что такое конструкторы и деструкторы по умолчанию и зачем они нужны?

A
  • Jedná se o konstruktor s prázdným tělem programu
  • Je volán v případě, kdy není definován vlastní
  • Это конструктор с пустым телом программы.
  • Вызывается, когда пользовательский конструктор не определен
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Co jsou objektové kompozice a k čemu jsou dobré?
Что такое объектные композиции и для чего они нужны?

A

Definujeme třídu využívající jinou třídu, avšak nejedná se o dědičnost
Мы определяем класс, используя другой класс, но это не является наследованием

How well did you know this?
1
Not at all
2
3
4
5
Perfectly