Blog del corso di Programmazione (9 CFU) tenuto da Marco La Cascia presso l'Universita' di Palermo per il corso di laurea in Ingegneria Informatica e delle Telecomunicazioni. Tratta la programmazione a oggetti in Java.
Salve prof, Nell'esercizio 1 al punto a ha detto di mandare in output una data nel seguente formato: GGG AAA. Voleva forse scrivere GG MM AAAA per caso?
Ah ok ora ho capito. Sono incappato in un altro problema tuttavia: Nel secondo esercizio non riesco a implementare nessun distruttore, né per appuntamento, né per Time. Mi da un errore di linker, come mai?
Ho riprovato poco fa e compila correttamente anche se fondamentalmente non ho apportato nessuna modifica. Qui di seguito c'è il link dell'esercizio: http://www.megaupload.com/?d=4HUWVJ7T
Probabilmente allora era dovuto a un problema del Dev. Ogni tanto capita che si impalla il linker e per resettarlo bisogna fare "Riassembla tutto" dal menu "Esegui".
E' vero...il linker si impalla e ancora non riesco a compilare! Mi da errori pure in funzioni che non ho definito io (C:\Users\Alberto\AppData\Local\Temp\ccgBaaaa.o(.text$_ZN9PolinomioC1Ev[Polinomio::Polinomio()]+0x30) In function `ZSt17__verify_groupingPKcjRKSs') boh
Il Dev da certamente problemi se si cambiano nomi ai files o si spostano i files da una cartella all'altra. Conviene sempre fare nuovo progetto in una nuova cartella e aggiungere i nuovi files dall'apposita voce del menu. Il g++ a riga di comanda resta comunque il modo migliore per verificare la correttezza dei programmi.
ma è normale che nell'esercizio numero 6(quello da fare con la composizione e l'ereditarietà),il codice da sviluppare per l'ered. sia molto più breve di quello con la composizione?(gli output mi vengono uguali)
Si, e' assolutamente normale e anzi questo e' proprio uno dei grossi vantaggi dell'ereditarieta'. In pratica scrivi solo il codice in piu' rispetto alle classi che gia' hai senza dover mettere altro codice di contorno come invece devi fare con la composizione.
Salve prof,
RispondiEliminaNell'esercizio 1 al punto a ha detto di mandare in output una data nel seguente formato: GGG AAA. Voleva forse scrivere GG MM AAAA per caso?
No, intendevo proprio 3 cifre per il giorno (001 e' capodanno e 365 e' il 31 dicembre) e 4 per l'anno.
RispondiEliminaAh ok ora ho capito. Sono incappato in un altro problema tuttavia: Nel secondo esercizio non riesco a implementare nessun distruttore, né per appuntamento, né per Time. Mi da un errore di linker, come mai?
RispondiEliminaAvrai dimenticato qualche definizione ma senza vedere il codice e' impossibile dirlo...
RispondiEliminaHo riprovato poco fa e compila correttamente anche se fondamentalmente non ho apportato nessuna modifica. Qui di seguito c'è il link dell'esercizio:
RispondiEliminahttp://www.megaupload.com/?d=4HUWVJ7T
Probabilmente allora era dovuto a un problema del Dev. Ogni tanto capita che si impalla il linker e per resettarlo bisogna fare "Riassembla tutto" dal menu "Esegui".
RispondiEliminaE' vero...il linker si impalla e ancora non riesco a compilare! Mi da errori pure in funzioni che non ho definito io (C:\Users\Alberto\AppData\Local\Temp\ccgBaaaa.o(.text$_ZN9PolinomioC1Ev[Polinomio::Polinomio()]+0x30) In function `ZSt17__verify_groupingPKcjRKSs')
RispondiEliminaboh
E' proprio problema dell'ambiente di Dev-Cpp. Se compilo con g++ da riga di comando non mi da alcun errore e mi crea l'eseguibile.
RispondiEliminaIl Dev da certamente problemi se si cambiano nomi ai files o si spostano i files da una cartella all'altra. Conviene sempre fare nuovo progetto in una nuova cartella e aggiungere i nuovi files dall'apposita voce del menu. Il g++ a riga di comanda resta comunque il modo migliore per verificare la correttezza dei programmi.
RispondiEliminasalve prof,
RispondiEliminaera possibile avere la soluzione di questa esercitazione?
Pubblicherò la "soluzione" di questa esercitazione subito dopo capodanno, contestualmente al testo di una nuova esercitazione da svolgere.
RispondiEliminama è normale che nell'esercizio numero 6(quello da fare con la composizione e l'ereditarietà),il codice da sviluppare per l'ered. sia molto più breve di quello con la composizione?(gli output mi vengono uguali)
RispondiEliminaSi, e' assolutamente normale e anzi questo e' proprio uno dei grossi vantaggi dell'ereditarieta'. In pratica scrivi solo il codice in piu' rispetto alle classi che gia' hai senza dover mettere altro codice di contorno come invece devi fare con la composizione.
RispondiElimina