Buonasera a tutti,
Forse sbaglio il modo di porre la domanda, ma vi chiedo come si fa a leggere una libreria.
Mi spiego meglio, molte volte trovo degli esempi per capire come sviluppare uno sketch che magari vorrei realizzare e l'esempio ti dice di inserire la tal libreria, solo che per capire tutti i comandi di quella libreria non viene elencato. Vorrei capire come si possa fare per capire tutti i comandi a disposizione di una certa libreria, eventualmente vorrei anche capire come mai una libreria è formata da un file " .h " e da uno " .cpp"
allora discorso ampio ed articolato che cercherò di riassumere...di solito una libreria (intendo il pacchetto) è fornita di un file txt dove sono elencati i metodi, gli attributi, i campi resi pubblici, cioè utilizzabili nel programma, e ad ogni uno di questi viene attribuito una caratteristica (colore e stile) per identificarle meglio nel programma. Chi fa bene il suo lavoro ci allega anche un file txt,pdf etc descrittivo .
poi per capire che differenza c'è tra il file .h ed il .cpp il mio consiglio è di prendere un bel libro sul C++ ...che non è la seconda edizione del C ma una cosa discretamente diversa in quanto il C++ è orientato agli oggetti, ed anche procedurale, mentre il C è "solo" procedurale...e studiare.
detto questo brevemente posso dirti che, parlando di C++, nel file .h trovi "elencate", senza un reale utilizzo, gli attributi, le variabili, i prototipi delle funzioni (quelle che saranno i metodi della classe ma senza il loro corpo), i campi, etc...ed anche il loro corrispettivo modificatore di visibilità.
Nel file .cpp c'è scritto il reale comportamento dei metodi, degli attributi e del resto...e di solito ogni uno di questi viene commentato per descrivere cosa fa od a cosa serve.
Secondo me, scendere nel dettaglio, senza avere una base, sarebbe deletterio...quindi mi fero qui...se hai domande specifiche chiedi.
ok perfetto, grazie.
Restante il fatto della mia nullità di conoscenze del C++.......la mia domanda parte appunto dal fatto che non sempre si trova un file TXT o PDF, da qui il fatto di andare a leggere direttamente il file H e CPP.
Altra difficoltà è che non sempre capisco cosa viene scritto, anche perchè quasi la totalità dei file che si trovano, quelli si trovano, sono scritti in inglese.
Siccome ho delle difficoltà, e mi vergogno a scriverlo qui....un libro per cominciare con il C++ dal costo accessibile?
ciao...sicuramente qualcuno ti indicherà qualche buon libro (io non ne ho)...però ti dico la mia...poi magari vengo processato e fucilato in piazza...cercando e leggendo, in giro per la rete, indicazioni di libri buoni (ma anche dei meno buoni) se ne trovano tante...ma si trovano anche discrete dispense "a gratis" e tanti siti fatti più o meno bene...direi che puoi incominciare così...poi se ti piglia fai l'investimento.
A dire la verità...per "capire" il concetto di programmazione ad oggetti mi è stato molto utile studiare e scrivere in PYTHON (altro linguaggio)...poi, chiariti certi concetti, sono "ritornato" sul C++...studiano dalle dispense e dai siti ed analizzando il lavoro degli altri (librerie in primis).
in ultima aggiungo questa mia valutazione...non è tanto la padronanza del linguaggio, intesa come conoscenza della sintassi e della semantica, anche se fondamentali, che ti permette di scrivere un buon programma...ma è come lo strutturi...investire tempo nel ragionarci su prima ti risparmia tante rogne dopo.
Ciao! Non è un approccio sbagliato guardare i sorgenti delle librerie, se gli esempi e la documentazione
non spiegano tutti i metodi!
Se vuoi approfondire il C++ non è sbagliato, ma questo serve soprattutto se vorresti scrivere tue librerie personali.
La programmazione ad oggetti si basa dell'utilizzo di classi "librerie in arduino" senza la necessità capire come sono implementate "come sono fatte".
Per capire come si comporta il metodo, ti basterebbe la conoscenza base del linguaggio C, metodo e funzioni C puoi considerarli "simili".
1)Nome del metodo ti dovrebbe indicare approssimativamente quale è il suo compito
2)Tipo di ritorno, ti dice cosa restituisce e quindi cosa ci puoi fare
3)Parametri, quello che gli dovrai passare obbligatoriamente per farlo funzionare
se io avessi un metodo cosi composto
public:
int years();
Dal nome potrei intuire che restituisce anni, dal tipo di ritorno capisco che me lo restituisce come numero
intero, per cui posso intuire come usarlo
Grazie a tutti per i suggerimenti, in effetti leggendo alcune librerie qualcosa si capisce o si intuisce quello che potrebbe fare, è solo che alcuni passaggi sono davvero complicati.
Comunque grazie, comincerò a guardarmi in giro sul Web ...
kemosabesay:
Grazie a tutti per i suggerimenti, in effetti leggendo alcune librerie qualcosa si capisce o si intuisce quello che potrebbe fare, è solo che alcuni passaggi sono davvero complicati.
Scusa ma tu vuoi capire come FUNZIONA o come SI USA?
Perché per la prima ok, esaminare la libreria (in genere inizi dal .h che riassume tutto quello che devi sapere, poi il .cpp contiene l'implementazione vera e propria) è utile magari per imparare, ma spesso lo si fa per capire perché, usando quella libreria, sembra fare cose che non ci attendiamo.
Se invece è la seconda, ogni libreria è solitamente corredata dalla sua documentazione (se sta su GitHub ad esempio in genere c'è la cartella "doc") con il reference di cosa espone e quindi cosa può fare, il tutto unitamente agli esempi installati anche questi insieme alla libreria.
Ciao docdoc, in pratica tutte e due le cose, solo che come dicevo, a parte l'inglese....., molte volte non trovo la documentazione e quindi leggo l' h e il cpp per vedere di capire cosa potrebbe fare quella libreria.
Solo che senza basi non è semplice....anzi, e comunque molte volte trovo negli esempi della tal libreria cose da fare che non sempre vengono specificate nella documentazione ....ammesso che ci sia.
Resta il fatto che appunto, se riesco a leggere qualcosa per poter imparare tanto meglio.