Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
La nuova fotocamera compatta DJI spicca per l'abbinamento ideale tra le dimensioni ridotte e la qualità d'immagine. Può essere installata in punti di ripresa difficilmente utilizzabili con le tipiche action camera, grazie ad una struttura modulare con modulo ripresa e base con schermo che possono essere scollegati tra di loro. Un prodotto ideale per chi fa riprese sportive, da avere sempre tra le mani
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-08-2011, 16:47   #1
InformaticoRC
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
InformaticoRC è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2011, 17:01   #2
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Comincia da qui http://www.cplusplus.com/doc/tutorial/
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2011, 17:04   #3
InformaticoRC
Member
 
Iscritto dal: Apr 2010
Messaggi: 50
Quote:
Originariamente inviato da clockover Guarda i messaggi
ehm...niente in italiano?
InformaticoRC è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2011, 17:18   #4
ndakota
Senior Member
 
L'Avatar di ndakota
 
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
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2011, 17:34   #5
british
Member
 
L'Avatar di british
 
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
Quote:
Originariamente inviato da InformaticoRC Guarda i messaggi
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
non si può. comprati un (buon) libro (o più di uno) e preparati a sudare.

ciao!
british è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2011, 18:10   #6
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
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.
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2011, 20:45   #7
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da ndakota Guarda i messaggi
"guida completa e concisa", "C++", "in poco tempo" e "senza difficoltà" non dovrebbe essere messe in una stessa frase
Per non dire "in italiano"
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2011, 20:55   #8
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Poveretto gli avete completamente smontato tutti i sogni
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2011, 22:06   #9
pabloski
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.
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2011, 06:55   #10
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2011, 08:44   #11
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
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.
Quoto e, beh, anche il C++ è roba da programmatori navigati, a ben guardare
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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-08-2011, 15:35   #12
InformaticoRC
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.
InformaticoRC è offline   Rispondi citando il messaggio o parte di esso
Old 03-08-2011, 15:53   #13
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
Quote:
Originariamente inviato da InformaticoRC Guarda i messaggi
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.
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.
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 03-08-2011, 20:12   #14
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da Freaxxx Guarda i messaggi
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.
E oddio l'ereditarietà multipla "anni" mi sembra proprio eccessivo
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.
__________________
*ToMmO*

devlog | twitter

Ultima modifica di Tommo : 03-08-2011 alle 20:14.
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 03-08-2011, 20:52   #15
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
Quote:
Originariamente inviato da Tommo Guarda i messaggi
E oddio l'ereditarietà multipla "anni" mi sembra proprio eccessivo
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.
Mi complimento con te ma non credo che la media sia questa, basti pensare ad uno dei perché della nascita di un certo Java, nato anche per ovviare a problemi ed errori di programmazione sulla gestione della memoria.

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.
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 03-08-2011, 22:26   #16
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12859
Quote:
Originariamente inviato da Freaxxx Guarda i messaggi
Mi complimento con te ma non credo che la media sia questa, basti pensare ad uno dei perché della nascita di un certo Java, nato anche per ovviare a problemi ed errori di programmazione sulla gestione della memoria.

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.
Diciamo che la gestione della memoria tipicamente a tutto serve tranne che a risolvere il problema che stai cercando di risolvere.

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.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2011, 00:50   #17
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da Freaxxx Guarda i messaggi
Se fosse realmente così facile la gestione della memoria non ci sarebbero tanti errori in programmazione e tanti libri sull'argomento.
Guarda che il mio rant era a proposito dell'uso della frase "imparare i puntatori" al posto di "imparare la struttura della memoria"...
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
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2011, 02:24   #18
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Diciamo che la gestione della memoria tipicamente a tutto serve tranne che a risolvere il problema che stai cercando di risolvere.

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.
si, però non consideri le caratteristiche intrinseche al linguaggio così, o meglio, se una persona non vuole curare un suo "garbage collector" et similia, magari usa un altro linguaggio, magari qualcosa come C# e Java.

Quote:
Originariamente inviato da Tommo Guarda i messaggi
Guarda che il mio rant era a proposito dell'uso della frase "imparare i puntatori" al posto di "imparare la struttura della memoria"...
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
in tutti i testi che ho preso in mano fino ad ora, in tutti gli articoli online letti, i puntatori si chiamano puntatori, con questo non dico che certamente la nomenclatura è corretta, ma lo standard de facto è questo.

ovvio che stack, heap e meccanismi basta su valori referenziati sono alla base della base di ogni discorso del genere
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2011, 10:06   #19
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
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;
    }
}
Ovviamente questa funzione è sbagliata, perché non cambia il valore del puntatore esterno, ma lo cambia solo localmente alla funzione.

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".
WarDuck è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
Xbox Next Gen, non chiamatela console: s...
.Next On Tour Italia: innovazione, sempl...
PS Plus novembre: svelato in anticipo il...
'Gli elettroni sono il nuovo petrolio': ...
Amazon freme, non ce la fa ad aspettare ...
Hisense HS2100 240W a soli 75,90€ su Ama...
Addio personal trainer: il coach via AI ...
Creative reinventa il mito Sound Blaster...
Liquid Glass impatta sulla batteria degl...
Grokipedia di Elon Musk accusata di copi...
Google Pixel 9a scende a 382€ su Amazon:...
A 149€ il tablet senza compromessi: 1920...
11 accessori auto utilissimi in offerta ...
C'è un team italiano dietro gli a...
I prossimi iPad Pro avranno un component...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v