DOMANDA Codice C++ class friend non funziona

Pubblicità
Ma no, perchè scusa? Il mio esempio è identico a a /= b;, dove al posto di 'a' c'è la n e al posto di b c'è 2.
Quello che riporti in grassetto è un esempio diverso e "più complesso":

Codice:
int n = 10;
int m = 5;

n *= m +1;  // corrisponde a "n = n * (m+1);"  ->  n = 10 * (5 + 1) = 60

prezzo e numero sono due variabili distinte e 1 è una costante numerica.
Il mio esempio è come il primo (e il secondo) tra quelli riportati. Nel mio esempio hai n e poi un valore noto (che è 2), in quello hai due valori non noti, "a" e "b" (nel primo esempio hai in realtà una costante numerica, come nel mio esempio).
Che siano due variabili con un valore qualsiasi o che invece di una variabile ci sia un valore numerico, non cambia nulla, l'operazione è sempre quella.

Inoltre sono problemi ai quali puoi risponderti direttamente eseguendo il codice. Quando hai un dubbio la risposta più rapida per capire come funziona è provare.

C++:
#include <iostream>

using namespace std;

int main()
{
    int n = 10;
    n *= 2;
    cout << "N: " << n << endl;
   
    int a = 10, b = 2;
    a *= b + 1;
    cout << "A: " << a << endl;
   
    return 0;
}

Per eseguire online http://cpp.sh/6klww

Output:
Codice:
N: 20
A: 30
Strano allora...praticamente è una semplice moltiplicazione ma con segno diverso...
 
Si ma la differenza è che moltiplichi ed assegni direttamente il valore, senza usare la forma più lunga a = a*b.
Sto cercando di analizzare, apportando modifiche, il tuo codice con l' operatore di assegnamento composto ma essendo un capitolo che non ho ancora studiato mi sta creando non poche perplessità e dubbi. Per evitare di andare offtopic mi fermo qui, altrimenti sarebbe da aprire un topic a parte.
 
Pubblicità
Pubblicità
Indietro
Top