
PA2 - 3 - Konstruktory, destruktory

Quiz
•
Computers
•
University
•
Hard

Jan Matoušek
Used 2+ times
FREE Resource
8 questions
Show all answers
1.
MULTIPLE CHOICE QUESTION
45 sec • 1 pt
Co vypíše následující program?
A
B
B
A
Výstup není definován
Program nepůjde zkompilovat
Answer explanation
Konstruktory se volají v pořadí definice proměnných.
Platí to:
- ve struktuře / třídě
- u lokálních proměnných v bloku kódu
- u globálních/statických proměnných v rámci jedné překladové jednotky.
Nelze zaručit vzájemné pořadí z různých překladových jednotek.
2.
MULTIPLE CHOICE QUESTION
30 sec • 1 pt
Co vypíše následující program?
A
B
AB
AB
A
B
Výstup není definován
Program nepůjde zkompilovat
Answer explanation
Konstruktory se volají v pořadí definic proměnných a struktur/tříd.
Ale! Definice není hotová, dokud neskončí středníkem (nebo čárkou u proměnných).
Zde tedy je hotová nejprve
- definice a,
- definice b,
- definice struktury AB.
A má to důsledky...
3.
MULTIPLE CHOICE QUESTION
30 sec • 1 pt
Co vypíše následující program?
~A
~B
~AB
~AB
~A
~B
~B
~A
~AB
~AB
~B
~A
Answer explanation
Destruktory se volají v přesně opačném pořadí než konstruktory.
Můžete si představit, že se při vzniku proměnných pokládají na fiktivní (*) zásobník jejich rodné listy (konstruktory) a při jejich odchodu se ze zásobníku čtou závěti (destruktory).
*) nikoliv reálný; pořadí volání určí kompilátor přímo
4.
MULTIPLE CHOICE QUESTION
30 sec • 1 pt
Co vypíše následující program?
42
0
Výstup není definován
Program nepůjde zkompilovat
Answer explanation
Vlastní definice jakéhokoliv konstruktoru zruší deklaraci výchozího konstruktoru dodanou kompilátorem i céčkovou inicializaci po prvcích X x = { 1, 2, ... }; (*)
Konstruktor A() tedy neexistuje.
*) Zápis A a = { 1, 2 }; bude volat konstruktor A::A(int, int).
5.
MULTIPLE CHOICE QUESTION
30 sec • 1 pt
Co vypíše následující program?
42
0
Výstup není definován
Program nepůjde zkompilovat
Answer explanation
Respektujeme pořadí volání konstruktorů, během zpracování A::A(42) přiřadíme do m_A hodnotu 42.
Poté, co je instance A vytvořena, hodnotu m_A (42) vypíšu.
6.
MULTIPLE CHOICE QUESTION
30 sec • 1 pt
Co vypíše následující program?
42
0
Výstup není definován
Program nepůjde zkompilovat
Answer explanation
Respektujeme pořadí volání konstruktorů. Nejprve se tedy zkonstruuje reference m_A.
Jenže...
Reference NEMÁ výchozí konstruktor!
Tedy už 2. krok selže!
Pozdější přiřazení už pracuje s existující referencí, skrz kterou přiřadí hodnotu z dodané reference a.
7.
MULTIPLE CHOICE QUESTION
30 sec • 1 pt
Co vypíše následující program?
42
0
Výstup není definován
Program nepůjde zkompilovat
Answer explanation
Member initializer list nám umožňuje říct, jaké konstruktory (a s jakými parametry) členských proměnných se budou volat.
Toto už bude fungovat správně, protože konstruktor reference z jiné reference existuje. (2. krok)
Konstruktory lze takto i delegovat, tedy za : volat jiný svůj konstruktor.
8.
MULTIPLE CHOICE QUESTION
30 sec • 1 pt
Co vypíše následující program?
42
0
Výstup není definován
Program nepůjde zkompilovat
Answer explanation
Výchozí viditelnost členů ve třídě je private. Nastavit konstruktor jako private je jeden ze způsobů, jak si zajistit, že nepůjde vytvářet instance daného typu zvenčí.
Zajímavý je i zápis:
A() = delete;
Který daný konstruktor zruší. Toto se používá i v jiných případech, když např. chceme zablokovat kopie (viz 5. cviko)
Similar Resources on Wayground
Popular Resources on Wayground
10 questions
Lab Safety Procedures and Guidelines

Interactive video
•
6th - 10th Grade
10 questions
Nouns, nouns, nouns

Quiz
•
3rd Grade
10 questions
9/11 Experience and Reflections

Interactive video
•
10th - 12th Grade
25 questions
Multiplication Facts

Quiz
•
5th Grade
11 questions
All about me

Quiz
•
Professional Development
22 questions
Adding Integers

Quiz
•
6th Grade
15 questions
Subtracting Integers

Quiz
•
7th Grade
9 questions
Tips & Tricks

Lesson
•
6th - 8th Grade
Discover more resources for Computers
21 questions
Spanish-Speaking Countries

Quiz
•
6th Grade - University
20 questions
Levels of Measurements

Quiz
•
11th Grade - University
7 questions
Common and Proper Nouns

Interactive video
•
4th Grade - University
12 questions
Los numeros en español.

Lesson
•
6th Grade - University
7 questions
PC: Unit 1 Quiz Review

Quiz
•
11th Grade - University
7 questions
Supporting the Main Idea –Informational

Interactive video
•
4th Grade - University
12 questions
Hurricane or Tornado

Quiz
•
3rd Grade - University
7 questions
Enzymes (Updated)

Interactive video
•
11th Grade - University