Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => LAP 1: programmazione C/C++ 6 CFU => Topic started by: Shin on 31-01-2013, 11:55:24



Title: Soluzione esercitazione 30/01/2013
Post by: Shin on 31-01-2013, 11:55:24
Ecco la mia soluzione, ogni critica costruttiva è ben accetta:

Circuito.h (http://paste.ubuntu.com/1592774/)
Circuito.cpp (http://paste.ubuntu.com/1592776/)


Title: Re:Soluzione esercitazione 30/01/2013
Post by: StephCT on 31-01-2013, 13:40:58
è come l'ho fatto io. alla fine dell'esercitazione l'ho fatto controllare al prof e mi ha detto che andava bene la logica usata. l'unica cosa che ha detto anche a me: nei costruttori delle sottoclassi ha poco senso mettere come input l'unità di misura perchè è anch'essa fissa come il tipo di componente ( infatti tu il tipo di componente lo passi direttamente dalla chiamata del costruttore di resistore ecc.. e devi fare lo stesso per la misura, quindi ohm per resistore ecc... )


Title: Re:Soluzione esercitazione 30/01/2013
Post by: Shin on 31-01-2013, 14:00:50
è come l'ho fatto io. alla fine dell'esercitazione l'ho fatto controllare al prof e mi ha detto che andava bene la logica usata. l'unica cosa che ha detto anche a me: nei costruttori delle sottoclassi ha poco senso mettere come input l'unità di misura perchè è anch'essa fissa come il tipo di componente ( infatti tu il tipo di componente lo passi direttamente dalla chiamata del costruttore di resistore ecc.. e devi fare lo stesso per la misura, quindi ohm per resistore ecc... )


Ricevuto, grazie mille ;)


Title: Re:Soluzione esercitazione 30/01/2013
Post by: havoc on 01-02-2013, 11:00:15
Ecco la mia soluzione, ogni critica costruttiva è ben accetta:

Circuito.h (http://paste.ubuntu.com/1592774/)
Circuito.cpp (http://paste.ubuntu.com/1592776/)

Consiglio/insegnamento: usa const reference nei metodi ove possibile.
Es.:
Code:
void setName(const string& n) { name = n; }

Passare oggetti per valore può avere un forte impatto sia sulle performance. Per come l'hai fatto tu a ogni invocazione di setName il paramentro viene copiato su n e poi tu lo copi su name.

Correzione: in C++ ISO il main deve tornare un intero. Le firme possibili sono le seguenti:
Code:
int main(int argc, const char* argv[])
Code:
int main()
Il valore di ritorno da usare in caso di successo è 0.


Title: Re:Soluzione esercitazione 30/01/2013
Post by: Shin on 01-02-2013, 11:43:55
...

Grazie per i consigli!