Estratto del documento

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

Anteprima
Vedrai una selezione di 3 pagine su 6
Domande e risposte di teoria – Programmazione in C++ Pag. 1 Domande e risposte di teoria – Programmazione in C++ Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Domande e risposte di teoria – Programmazione in C++ Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher fedilorenzo di informazioni apprese con la frequenza delle lezioni di Programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Marco Bertini.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community