Domanda sulle proprietà di Visual C ++

0

Qualcuno potrebbe spiegare questa frase:

In more complicated contexts, such as "+=", a rewrite is performed by doing both get and put.

Tratto da: MSDN - Proprietà

Che cosa intendono per riscrittura? È una riscrittura in fase di compilazione o induce un sovraccarico di runtime? Per quanto ne so in modalità di rilascio, le proprietà sono compilate allo stesso modo, quindi devono avere le stesse prestazioni di getter / setter, giusto?

    
posta ulak blade 06.01.2014 - 22:53
fonte

1 risposta

1

Come vedi nel paragrafo completo nella pagina MSDN a cui hai fatto riferimento, tutto il lavoro è svolto dal compilatore.

When the compiler sees a data member declared with this attribute on the right of a member-selection operator ("." or "->"), it converts the operation to a get or put function, depending on whether such an expression is an l-value or an r-value. In more complicated contexts, such as "+=", a rewrite is performed by doing both get and put.

Quindi significa che la seguente riga:

s.the_prop = 5;
n = s.the_prop;

compilato per:

s.putprop(5);
n = getprop();

Un caso complicato come:

s.the_prop += 5;

compilato per:

s.putprop(s.getprop() + 5);

Penso che non è così complicato come hanno detto in MSDN!

    
risposta data 18.01.2014 - 08:54
fonte

Leggi altre domande sui tag