R G
, ,
3 ; &
Image
class
public :
Image (int height)
int
width ;
,
Void (intX
drawPixel pixel)
Pixel
inty &
const ;
, ,
inty)
(intx
Pixel getPixel ;
,
private :
Pixel buffer
x ;
width
int height
;
,
i Pixel
/Image fornita
COMMENTI La dalla
bit
bit shallow compilatore
al nel
Pixel
sufficiente stato
lo
data è ,
di
copia copiare un
a
: a ma
copy
pixel buffer bit
il
che
dell'immagine dinamicamente che
allocato
dei è
abbiamo buffer puntatore copiato
il viene a
e
caso se
bit Il
porta che
ad pixel
di tutti un'immagine programmatore
completa deve quindi
i
avere copia
non compongono
una .
formire Image
copyl di
il (deep tipo
codice degli oggetti
ottenere completa
copia
per una .
la
Motivare risposta precedente
11 .
. Dato Image ha
lo bisogno
della la bit
bit
dei la
che la classe classe dato
bit
shallow bit che
solo
membri
implica copia ne copia
a a
copy l'intera
dell'attributo buffer l'indirizzo
porterebbe allocata
solo memoria
e
copiare non
a .
la buffer
del Image
che
Supponendo nella la
classe
precedente indicare classe
allocata nel costruttore,
memoria
12
. sia se
nel
sembra di risolverlo
programmazione
avere e caso come
errore
un .
Se la liberi
fornito che
buffer
del allora
costruttore la
nel
allocata distruttore questa
memoria viene memoria
viene un
non ,
ma
leak). Ogni
classe (memory che Image
volta classe
un'istanza
di distrutta la
perdita
potrebbe della
memoria
avere una viene ,
il liberata
buffer
allocata nel
cansando perdita
dinamicamente di
memoria viene memoria
per programma
non una
, .
Per Il
liberi
è Image
la che
definire
risolvere la buffer
problema classe allocata il
distruttore
questo necessario memoria
un per per
, .
distruttore dovrebbe EJ
utilizzando
buffer
deallocare il .
dinamico l'operatore delete
Commenti la
La ha implementato
deallocare
classe modo nel Andrebbe
costruttore
allocata
di distruttore al rilascio
provvedere
memoria un
: . per
non suo .
la (Rule threel
regola devono
of
tre metodi
Secondo dei che
implementare classe
dei seguenti
quali in
si
13 una
. ?
gestisce risorse default
costruttore di default
costruttore di
non
~ costruttore di copia
~ operatore di assegnazione
V distruttore
La
Commenti di default
costruttore parametri dalle design della
necessità
necessità di dipende di classe
avere
avere con
non
: o o .
L'aspetto la
rilevante di (costruttore
queste
regola è copiate
dalla gestione
coperto risorse in oggetto
come essere
possono
e nuovo
un
copial più
(operatore l'oggetto
liberate
,
di esistente quando
già
copiate oggetto di
in serve
assegnazione)
essere non
essere
un
,
Colistruttore) . Indicare
Sia lo della
data stato
la Foo può
dei
classe quale modificare
seguente puntatori usato
.
14 essere per
.
metodo
il .
setBar()
classe con
Fooh
class
public : consta
getBar()
int bar
return ;
3 4
setBar(int bar)
Void this-bar-bar
;
!
private : bar
int ;
Si (1[
int main
For aFoo ;
Foo daFoo
pF1
* ;
=
-setBar(1)
pF1 ;
const LaFoo
XpF2
Foo = ;
pF2-setBar(2) ;
Foo &aFoo
const pF3
x = ;
(3)
-setBar
pF3 ;
const &
pF4
Foo const aFoo
X ;
=
(4)
setBar
pF4 + ;
3
/pF1
pF2
VpF3
pF4
Commenti monta Questi
Foo
alcuna mentre può
costanza puntatori
puntare
costante
puntatore che consentono
all'oggetto
pf1 quindidi
pes è atoo assegnato
ovvero non
un a
: .
, ,
lo
modificare costanti
dell'oggetto
stato metodimon pF2 è
atoo
puntatore
usarli quindi
è mentre
costante modificarlo pF4 puntatore
può ,
possiamo invocare
ovvero per non un
un a
, ,
.
modificarlo
solo
costante quindi
ad può puntare
costante oggetto
ad
puòneanche altro
Foo non
non non un
un , ma . lo
la puntatori
Indicare
data dei può
Sia quale ottenere
classe Foo
seguente usato
15
. essere per
.
getBar()
stato metodo
il
della classe con .
Fooh
class
public : consta
getBar()
int bar
return ;
3 4
setBar(int bar)
Void this-bar-bar
;
!
private : bar
int ;
Si (1[
int main
For aFoo ;
Foo daFoo
pF1
* ;
= da Foo
const Foo pF2
* ;
=
Foo &afoo
constpF3 = ;
const =&
Foo pt4 a Foo
const
* ;
3
/ pF1
~ pF 2
/pF3
(pF4
-
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