D
derivata offerte classe B
dalla modificandole el
contiene altre
aggiungendone .
,
La B /aggiungendone
classe le funzionalità offerte
contiene dalla D altre
classe modificandole .
,
Commenti funzionalità
La le funzionalità
le
della base eventualmente
derivata quindi
classe classe
estende contiene aggiungendone
,
sue
: ,
creditate
di comportamento
modificando .
il di quelle
nuove o
Indicare è la relazione
meglio
dellato
dei
quali usando di creditarietà
classi
di
seguenti tra
relazioni
2 casi ma .
. ~ Personaggio Mostro fine
di
di livello
gioco -
Veicolo-Auto
↓ Auto-Motore
Arma-Proiettile
Commenti Un'Auto Mostro livello
veicolo fine
di
è di
i
un gioco
: personaggio
un
un un
; .
Invece ha un)
(o
motore ha
al limite
un'Auto proiettile
un'Arma un
, spara
un
È ad della base B
membro privato
Daccedere classe
metodo da
di
possibile derivata
classe
.
3 un
per una
un
?
deriva
cui Si
No I
Commenti membri membri stessa
della classe
privati solo
accessibili ai
sono
: .
E protetto della
ad membro
Daccedere
di
possibile classe
metodo derivata
.
4 una
per un
un ?
da
classe B deriva
cui
Si
No
Commenti I le
membri dell'interfaccia
protetti classi accessibili
di derivate dai
disegnata
classe
parte
: sono sono
per essi
una ;
derivate
delle
membri classi .
Una ?
classe derivata membri base deriva
B
della classe
Deredita da
privati
. i
5 cui
Si
· No
Commenti base
dalle accessibili
Sebbene privati creditati della
membri classi classe inclusi
dai membri
i siano essi
non , sono comunque
: funzionare
funzionalità
le
Senza base
derivata
nella della
classe di questo potrebbero
classe .
non
. di
metodo protetto
invochiamo
Cosa privato
di
codice
nel
accade un una
programma o
un
.
6 se ?
classe mostrato
nell'esempio
come
Il compila segnala
compilatore
il
· programma non errore
un
,
Niente il correttamente
compila ed
, esegue
programma .
Il dell'esecuzionale
momento
ha al
compila dell'istruzione
durante l'esecuzione
si errore
programma ma un .
Dato
Commenti identificato dal
semantico
che questo è compilatore
viene
errore , .
un esso
: Indicare
Si la base la D
le derivata
due di
considerino classi B
seguenti quali inizializzazioni
. e
7 .
,
puntatori di compilazione
corrette errori
risultano in
e
sono non .
VD * =D
pD2 aDi
/B =&
pB2 aD
* ;
VB pB &aß
* = ;
D
* =& aß
pD ;
Commenti pB base
pB2 base
puntare
puntatori classe classe
quindi di puntatore
tipo
usati oggetti
: e possono essere sia
per
sono a a
e a
derivata base
pDe pD2 derivata
classe tipo classe
quindi di
oggetti
puntare
puntatori puntatore
non possono
e
o .
a a
sono a
. modo Ceredità
classe privata)
derivata questa
Se base
Destende B
classe
privato
.
8 una
in
una ,
?
Liskov
rispetta il di
principio
funzionalità D
.
le dalla
Si della offerte
B derivata
base
classe classe
anche
sono
,
No le funzionalità base ha interfaccia
offerte derivata diversa
che
dalla
della B quindi
D
classe classe
· sono
non ,
, .
L'eredità
Commenti membri
che quindi
della classe livello
base D
nella
privata derivata
implica di classe
abbiamo privato
i accesso
: ,
ha la
Da D
dell'interfaccia della .
B
classe che classe classe
parte questo della
al
usata posto
si
non sono non essere
. possa
atteso
l'output seguente
è
Qual dal ?
9 programma
. B-D-B compila
il
nessuno programma non
,
D-B-B
· B-B-D
· Prima A
Commenti che di
invocato .
B
tipo
è
aB
costruttore costruito
dell'oggetto
il
viene viene
seguire
: la
oggetto B
tipo classe base
di quindi
D estende
che quello
della
costruttore
invocato il classe
prima poi
un e
,
della derivata
.
l'output ?
dal
Qual atteso
è seguente
9 programma
. Nessuno il compila
· programma non
, D
B B
2
: - :
B B D
2 O
:
: - -
2 - B
B 1 D
-
:
:
10.
11
.
12
.
13 .
14
.
15
.
-
Domande e risposte di teoria – Programmazione in C++
-
Domande e risposte di teoria – Programmazione in C++
-
Domande e risposte di teoria – Programmazione in C++
-
Domande teoria