DOMANDA Codice C++ class friend non funziona

Dema.King84

Utente Attivo
332
18
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...
 

DispatchCode

Moderatore
Staff Forum
1,219
852
CPU
Intel 1200 I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10Gb DDR6
Audio
Integrata 7.1 HD audio
Monitor
AOC C27g2u 165Hz
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
30Mbps/3Mbps con Eolo
OS
Windows 10 64bit
Cosa intendi per "segno diverso"?
 

DispatchCode

Moderatore
Staff Forum
1,219
852
CPU
Intel 1200 I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10Gb DDR6
Audio
Integrata 7.1 HD audio
Monitor
AOC C27g2u 165Hz
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
30Mbps/3Mbps con Eolo
OS
Windows 10 64bit
che invece di avere il semplice * ha il segno composto *=

Si ma la differenza è che moltiplichi ed assegni direttamente il valore, senza usare la forma più lunga a = a*b.
 

Dema.King84

Utente Attivo
332
18
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.
 

Entra

oppure Accedi utilizzando

Discussioni Simili

Hot: Sei vaccinato? [sondaggio anonimo]

  • Primo ciclo vaccinale completo (1-2 dosi)

    Voti: 456 78.4%
  • Fatta 1a dose, in attesa della 2a

    Voti: 20 3.4%
  • Sono prenotato per la 1a dose

    Voti: 13 2.2%
  • Non so se vaccinarmi

    Voti: 16 2.7%
  • Non ho intenzione di vacciarmi

    Voti: 61 10.5%
  • Fatta anche la terza dose

    Voti: 16 2.7%