|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 50
|
[C++]Guida C++
Salve forum,
Volevo chiedervi se conoscete una guida COMPLETA MA CONCISA di C++ da trovare online che mi permetta in poco tempo di conoscere bene questo linguaggio, permettendomi di programmare senza difficoltà. GRAZIE |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Comincia da qui http://www.cplusplus.com/doc/tutorial/
|
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Apr 2010
Messaggi: 50
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
"guida completa e concisa", "C++", "in poco tempo" e "senza difficoltà" non dovrebbe essere messe in una stessa frase
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
Quote:
ciao! |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
io ho un libro che introduce al C++ e fa accenni di UML e sono 800 pagine solo per parlare un po' di sintassi e strutture, pagina più pagina meno, ci sono libri solo sui puntatori da 300-400 pagine, tieni presente che vuoi approcciare uno dei linguaggi più ostici in circolazione.
se vuoi massimizzare l'uso del tempo a tua disposizione leggiti qualcosa su un linguaggio ad alto livello come Java, Python o Ruby che sono più approcciabili del C++, se vuoi imparare il C++, dedicagli tanto tempo. |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
|
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Poveretto gli avete completamente smontato tutti i sogni
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Purtroppo è così, non si è mai sentito di una guida al C++ che fosse semplice, corta, tipo tutorial ed inoltre in italiano.
Mi sa che devi procurarti il libro di Stroustrup o quello di Eckel. Il primo è meno pesante e più schematico. |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Con lo Stroustrup come minimo lo vediamo volare dalla finestra in preda alla disperazione.
Ha tutto, viene considerata la bibbia, ma è anche un mattone. Roba da programmatori navigati, insomma. Eckel è già molto più potabile.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Se però a InformaticoRC serve *esattamente* quello, non si scappa.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 50
|
Come libro ho già quello di Deitel&Deitel "C++, Fondamenti di programmazione", però cercavo qualcosa di più immediato appunto, come guide e tutorial in modo da acquisire più velocemente una buona conoscenza.
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
ad iniziare adesso non finiresti tra 10 anni con il C++, non esiste un approccio veloce al C++, questo devi capire, inoltre il C++ ha features più uniche che rare nel mondo odierno dei linguaggi come i puntatori e l'eredità multipla, questi 2 argomenti presi da soli ti possono tenere impegnato per anni a studiarli.
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
E alla fine qualsiasi persona sana di mente usa implicitamente un modello a ereditarietà singola + interfacce, con il vantaggio che le interfacce possono anche contenere qualche metodo con un comportamento di default. Purtroppo l'ereditarietà multipla di C++ è rotta (come tante altre cose), e lo standard lascia spazio ad un mucchio di comportamenti undefined in parecchi casi tipo diamond inheritance, ambiguous casting, uso coi template, e tante altre simpatiche perdite di tempo infinite I puntatori sono un'altra bestia - il prossimo che li chiama "i puntatori" gli stacco le mani ![]() E' più corretto dire che C/C++ offrono un "accesso di basso livello alla memoria" e quindi ti permettono di gestire l'aritmetica degli indirizzi, la posizione in memoria degli oggetti, se mettere qualcosa sullo stack o sull'heap, etc. "I puntatori" sono semplicemente uno dei mezzi con il quale si manipola la memoria in C++... e sono assolutamente banali nel momento in cui sai che cosa stai facendo. Ovviamente questo non vuol dire che il C++ sia banale, perchè gestire a mano la memoria è tipo la causa del 99% dei bug per i principianti PS: con i puntatori, ASSERT() è tuo amico. Ultima modifica di Tommo : 03-08-2011 alle 20:14. |
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
Si potrebbe poi parlare dei vari compilatori che ci mettono comunque il loro zampino dato che trattano il linguaggio, e lo standard del linguaggio non specifica proprio tutto al 100%, e quello che non è specificato ogni compilatore lo implementa come meglio crede. Se fosse realmente così facile la gestione della memoria non ci sarebbero tanti errori in programmazione e tanti libri sull'argomento. |
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12859
|
Quote:
Gestire la memoria è qualcosa di vicino alla macchina, mentre tu vorresti degli strumenti che fossero più vicini al tuo modo di ragionare. Per questo motivo sono stati introdotti linguaggi e implementazioni di linguaggi che consentissero di liberarsi dalla gestione della memoria. In alcuni contesti ovviamente non se ne può fare a meno, ma nella maggior parte dei casi gestire la memoria (ed eventuali bug che possono derivarne) è solo una tremenda perdita di tempo per il programmatore. |
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
non ho affatto detto che è facile, anzi, imparare "i puntatori" a memoria è pure più facile che capire veramente la macchina e che cosa stai facendo. E' anche vero che se provi a andare pointer-heavy in C++ e non sai nemmeno cos'è l'heap, la cosa finirà malissimo
|
|
|
|
|
|
|
#18 | ||
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
Quote:
ovvio che stack, heap e meccanismi basta su valori referenziati sono alla base della base di ogni discorso del genere |
||
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12859
|
Quello che intendeva dire Tommo è che i puntatori sono uno strumento per accedere alla memoria.
Il loro utilizzo è di fatto "semplice" se si conosce perfettamente la struttura della memoria. Buona parte degli errori è dovuto spesso al fatto di non conoscere la struttura della memoria. Ad esempio stiamo lavorando su un simulatore in C, avevamo una funzione che prende in ingresso un puntatore e lo modifica a seconda dei casi. La funzione era stata scritta così: Codice:
void func( int* ptr )
{
switch( something )
{
case A:
ptr = x;
break;
case B:
ptr = y;
break;
}
}
Quindi alla fine avevi che ptr era sempre un puntatore sballato. Questo è un caso eclatante, ma spesso è difficile beccare errori nella gestione della memoria. Comunque lavorando per un po' di mesi su questo progetto ho potuto verificare che la maggior parte degli errori si verifica o per via di strutture non inizializzate (avevamo una struttura allocata con malloc che a volte risultava inizializzata altre volte no), o per via di mancati controlli sui puntatori. Insomma cose che dovrebbero rientrare nelle "best practices". |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:08.





















