Co vypíše následující program?

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
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
11 questions
A level Computer Science Fetch Decode Execute

Quiz
•
10th Grade - University
8 questions
Kvíz o Pythone

Quiz
•
11th Grade - University
10 questions
AppsLab_Q2

Quiz
•
10th Grade - Professi...
8 questions
PRP_CV05

Quiz
•
University
6 questions
PRP_CV10

Quiz
•
University
10 questions
Java quiz based on inheritance

Quiz
•
University
10 questions
C Programming Quiz-6

Quiz
•
University
10 questions
ICT General Knowledge Quiz

Quiz
•
3rd Grade - Professio...
Popular Resources on Wayground
25 questions
Equations of Circles

Quiz
•
10th - 11th Grade
30 questions
Week 5 Memory Builder 1 (Multiplication and Division Facts)

Quiz
•
9th Grade
33 questions
Unit 3 Summative - Summer School: Immune System

Quiz
•
10th Grade
10 questions
Writing and Identifying Ratios Practice

Quiz
•
5th - 6th Grade
36 questions
Prime and Composite Numbers

Quiz
•
5th Grade
14 questions
Exterior and Interior angles of Polygons

Quiz
•
8th Grade
37 questions
Camp Re-cap Week 1 (no regression)

Quiz
•
9th - 12th Grade
46 questions
Biology Semester 1 Review

Quiz
•
10th Grade