Semplice dubbio su classi

di il
1 risposte

Semplice dubbio su classi

Ciao, sono un utente che tenta il primissimo approccio con le classi. Ho riscontrato dei problemi di comprensione di base con il seguente programma (parte di programma) compilato da altri.
-------------------------
class c{
public:
double x,y;
c(double xx, double yy){
x=2*xx;
y=yy+1;
}
void f(int m){
x*=m;
y=x*m;
}
};
int main() {
c a(1,2), b(3,4);
b.f(5);
cout << a.x << " " << a.y << endl;
cout << b.x << " " << b.y << endl;
}
-------------------
In particolare non capisco quanto contenuto nel main (anzi solo quello). Qualcuno potrebbe aiutarmi "espandendo" le seguenti espressioni rendendo più chiaro il loro significato?
c a(1,2), b(3,4);
b.f(5);
a.x 
a.y 
b.x 
b.y 
Grazie

Edit skynet: inserimento code tags

1 Risposte

  • Re: Semplice dubbio su classi

    c a(1,2), b(3,4);
    Spezzettiamolo in due;
    c a(1,2);
    c b(3,4);
    Quindi qui tu hai due istanze della classe C rispettivamente a e b. Se vedi il costruttore di C prende due parametri xx e yy che nel caso della istranza a sono 1 e 2 e nel caso di b sono 3 e 4. La classe C ha anche una funzione chiamata f che accetta un parametro. Siccome B è un istanza di C, b.f(5) non è altro che la chiamata di quella funzione.

    a.x, a.y, b.x, b.y non sono altro che le variabili membro della classe c che siccome sono pubbliche li puoi chiamare direttamente.
Devi accedere o registrarti per scrivere nel forum
1 risposte