[Libro]: Programmazione Oggetti con linguaggio C

Lionel2
Salve a tutti,

ho cercato sul sito, ho trovato molte informazioni utili relative al linguaggio c, ma non sufficienti purtroppo. Volevo sapere se mi potreste consigliare un buon libro con tanti esercizi svolti e da fare, abbastanza chiaro e "semplice", che consenta di imparare la programmazione ad oggi nel linguaggio C (non C++!!). Un po' come per Java esiste l'Horstmann.

Grazie.

Risposte
claudio862
Tra i primi risultati su google c'è Object Orientated Programming in ANSI-C di Axel Schreiner. Non so quanto sia chiaro e "semplice" (ammesso che un tale libro possa essere semplice).
C'è un motivo particolare perché non vuoi considerare altri linguaggi che offrono questo paradigma in modo nativo? Anche orientati allo stesso ambito del C, come C++, D e (credo, non lo conosco) objective-C.

Lionel2
"claudio86":
Tra i primi risultati su google c'è Object Orientated Programming in ANSI-C di Axel Schreiner. Non so quanto sia chiaro e "semplice" (ammesso che un tale libro possa essere semplice).
C'è un motivo particolare perché non vuoi considerare altri linguaggi che offrono questo paradigma in modo nativo? Anche orientati allo stesso ambito del C, come C++, D e (credo, non lo conosco) objective-C.


Possibilmente in italiano (ecco cosa intendevo per semplice! :D ) . :) Perché purtroppo l'esame prevede l'uso del linguaggio C e il professore ha detto che ci sono tanti testi che abbiamo l'imbarazzo della scelta, per cui non ha consigliato nulla. L'esame di Java già l'ho fatto, un altro esame su questo linguaggio non mi sarebbe dispiaciuto onestamente.

claudio862
"Lionel":
Possibilmente in italiano (ecco cosa intendevo per semplice! :D ) . :)

In italiano non conosco nulla. In realtà nemmeno in inglese, quello è stato semplicemente il primo risultato di una ricerca. Cerco di tenermi a debita distanza dal C.
Vale sempre la regola che in informatica (ma non solo) i testi più importanti non vengono tradotti, quindi prima o poi è una buona idea imparare a leggerli.

"Lionel":
Perché purtroppo l'esame prevede l'uso del linguaggio C e il professore ha detto che ci sono tanti testi che abbiamo l'imbarazzo della scelta, per cui non ha consigliato nulla.

Tanti testi sulla programmazione ad oggetti in C? O semplicemente tanti testi sulla programmazione in C? Forse è più probabile che il corso si concentri sulla programmazione procedurale.

Lionel2
L'esame di programmazione procedurale C già fatto...

apatriarca
Non è vero che esistono molti testi sulla programmazione ad oggetti in C. Ne esiste forse qualcuno, ma tutt'altro che famoso e diffuso. Probabilmente non esiste niente in italiano. Ma a dire il vero, se conosci già Java e la programmazione ad oggetti e il C con la programmazione procedurale, non è così difficile programmare in C ad oggetti. Il normale metodo segue più o meno la seguente idea:
/* header.. */
typedef struct Classe Classe;

Classe * creaClasse(...);
void distruggiClasse(Classe ** classe);

void metodoClasse(Classe * classe, ...);
float altroMetodo(Classe * classe, ...);

int metodoStaticoClasse(..);

/* sorgente.. */
struct Classe {
    /* variabili membro classe.. */
};

void metodoPrivatoClasse(...);

/* implementazione metodi pubblici classe */

In alternativa puoi inserire la definizione della struttura nell'header se desideri allocare istanze della classe nello stack invece di allocarle dinamicamente. Questo è più o meno tutto quello che c'è da sapere sulla programmazione ad oggetti in C. Il resto è in comune con il Java o il C++ o .. qualsiasi altro linguaggio ad oggetti e riguarda la progettazione di programmi usando il paradigma ad oggetti. Su quello esistono in effetti numerosi libri anche in italiano.

EDIT: Nota che qualcosa del genere è presente nello standard C per la gestione dei file.

Lionel2
Quindi un libro come questo http://www.ateneonline.it/horstmann/home.asp potrebbe andare? Sperando ci siano anche tanti esercizi risolti e da svolgere.

Comunque grazie.

apatriarca
Ma non hai detto di voler programmare in C? Quel libro semprerebbe essere per il C++.. Credo dovresti chiedere consiglio al tuo professore per consigli su testi da adottare. Sinceramente, se hai già fatto il C e Java non hai alcun bisogno di testi per esplorare la programmazione ad oggetti in C. Basta guardare qualche tutorial o guida in rete per vedere come alcuni concetti sono stati implementati.

Lionel2
Sì, devo programmare in C, però speravo in una leggera similitudine dei due linguaggi...effettivamente io non cerco testi teorici, ma più esercizi per allenarmi con quache riga di teoria per la programmazione a oggetti nell'ambito del C. E' una richiesta un po' complicata...

claudio862
Le similitudini tra C e C++ sono meno di quello che si pensa. C++ è compatibile con C, ma offre strumenti diversi, che dovrebbero essere usati invece di quelli offerti dal C. Questo vuol dire che gran parte di quello che impari programmando in C difficilmente tornerà utile programmando in C++ (ad esempio gli array, ma anche i puntatori, il cui utilizzo in C++ è estremamente più limitato che in C).
Un libro sul C++ dovrebbe utilizzare questi strumenti, che in C non esistono, quindi probabilmente non è una buona idea usarlo per programmare in C.

Detto questo, esercizi ed esempi dovrebbero essere abbastanza indipendenti dal linguaggio, anche se la maggioranza dei testi che si occupano di programmazione ad oggetti sono dedicati a linguaggi che la supportano nativamente.
Ho trovato questo testo: Building Skills in Object-Oriented Design, Steven F. Lott, scaricabile liberamente. Contiene esercizi per esercitarsi con il paradigma della programmazione ad oggetti. C'è una versione per Python ed una per Java. È in inglese, ma non so quanto materiale ci sia in italiano sull'argomento.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.