Repository 32bit  Forum
Repository 64bit  Wiki

c o c++ quale dei due?

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Re: c o c++ quale dei due?

Messaggioda robbybby » lun apr 14, 2008 19:25

Ci ho fatto dei begli oggettini in assembler.
Ho anche un paio di progetti con interfacce tra asm e C, oppure tra asm e Basic (gulp!).
In programmi assembler complessi spesso utilizzo uno stack frame completo, con variabili locali (automatiche) e passaggio degli argomenti sullo stack, per non sporcare tutto con troppe variabili globali.
Su certe architetture (vedi i pic a 8 bit) e' invece obbligatorio, in assembler, usare solo variabili globali.

Ritornando al C: io sono passato dal C, al C++. Uso gli oggetti dove mi servono, e non li uso dove sono inutili.
Per esempio, in un "driver" video per pilotare un LCD grafico, la parte a basso livello l'ho fatta in C liscio, mentre ho usato gli oggetto per le parti superiori dell'interfaccia verso il programma.

Per il C, ti consiglio il Kernighan/Ritchie. Per il C++ lo Stroustrup, ultima edizione (mi sembra sia la quarta). Mi sa che lo Stroustrup pero' costi di piu' dei 52 euro del testo citato in precedenza :) .

Conosco anche QuickBasic e VB, ma li odio, letteralmente. :evil:
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1172
Iscritto il: sab dic 16, 2006 10:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: c o c++ quale dei due?

Messaggioda kreen » lun apr 14, 2008 20:28

spina ha scritto:No, intendevo dire semplicemente quello che ho detto, che crei una struttura e delle funzioni che ne modificano lo stato.
Non ho detto che il C è orientato agli oggetti o è un linguaggio ad oggetti, ho detto che si può plasmare il paradigma ad oggetti sul C, per quanto si possa fare ovviamente.
Spina



:p Allora ho interpretato male il senso del tuo discorso.
Blizzard ha scritto:Avete mai provato il Lippman e Lajoie? --- Comunque anche L&L alla fine esattamente metà libro fa la programmazione funzionale


Sì, è un buon libro. :thumbright: Affronta praticamente tutti gli argomenti. Ho comunque delle riserve sulla sua struttura. Scrivere delle buone funzioni permette di scrivere dei buoni metodi nella OOP. :idea: In fondo, i metodi sono delle funzioni. :idea:
Avatar utente
kreen
Linux 2.4
Linux 2.4
 
Messaggi: 228
Iscritto il: mer feb 01, 2006 18:32
Località: Verona
Slackware: 12.0
Kernel: 2.6.21.5-smp
Desktop: KDE

Re: c o c++ quale dei due?

Messaggioda nuitari » mar apr 15, 2008 17:06

Mi permetto di cantare fuori dal coro.

Il C++ è un linguaggio multi-paradigma ed il C è un suo sotto-insieme. Teoricamente è possibile programmare in C++ senza usare una sola riga del *vecchio C*, in pratica questo non viene quasi mai fatto, proprio per questa sua natura e per il fatto che ogni programmatore C++ arriva generalmente dal C.

Per questo, il mio consiglio: se vuoi imparare VERAMENTE la programmazione ad oggetti in C++, chiudi il libro del C, mettilo su una mensola ed inizia a leggere mattina e sera il Soustroup. Solo così puoi fare veramente tuoi i concetti del C++ e della programmazione ad oggetti in generale. Purtroppo, il C rappresenta spesso il più grande ostacolo nel corretto apprendimento del C++ (parlo per esperienza). Imparare a fondo il C può rendere *al tuo cervello* molto più ostico l'apprendimento di un paradigma ad oggetti, in quanto quest'ultimo è molto più vicino alla mentalità umana che a quella del calcolatore (laddove per il C vale il discorso inverso). Acquisire la giusta capacità d'astrazione non è cosa facile già essendo *programmatori vergini*, figurati essendo indottrinati dell'opposta filosifa..
Inoltre la tentazione di usare scorciatoie in C è veramente forte.
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 11:51
Località: San Colombano al Lambro
Slackware: 12.0

Re: c o c++ quale dei due?

Messaggioda conraid » mar apr 15, 2008 17:13

nuitari ha scritto:Per questo, il mio consiglio: se vuoi imparare VERAMENTE la programmazione ad oggetti in C++, chiudi il libro del C, mettilo su una mensola ed inizia a leggere mattina e sera il Soustroup. Solo così puoi fare veramente tuoi i concetti del C++ e della programmazione ad oggetti in generale. Purtroppo, il C rappresenta spesso il più grande ostacolo nel corretto apprendimento del C++ (parlo per esperienza). Imparare a fondo il C può rendere *al tuo cervello* molto più ostico l'apprendimento di un paradigma ad oggetti, in quanto quest'ultimo è molto più vicino alla mentalità umana che a quella del calcolatore (laddove per il C vale il discorso inverso). Acquisire la giusta capacità d'astrazione non è cosa facile già essendo *programmatori vergini*, figurati essendo indottrinati dell'opposta filosifa..
Inoltre la tentazione di usare scorciatoie in C è veramente forte.


Mi permetto di estendere questo discorso ad una programmazione procedurale ed ad oggetti, in qualunque linguaggio ed anche in linguaggi diversi.
A volte quando conosci la programmazione procedurale, sei portato ad usare quella sempre e comunque.
Viceversa conosco persone che hanno appreso subito la OOP che fanno l'opposto, e si plasmano un linguaggio procedurale in una visione ad oggetti. Come è stato detto qualche post fa.
Naturalmente IMHO tutto è relativo alla duttilità mentale programmatore, alcuni hanno più problemi di altri. Io purtroppo sono tra questi.
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: c o c++ quale dei due?

Messaggioda absinthe » mer apr 16, 2008 12:34

nuitari ha scritto:Il C++ è un linguaggio multi-paradigma ed il C è un suo sotto-insieme.

il sottogruppo c del c++ non è proprio uguale al c puro ma è similissimo!
Teoricamente è possibile programmare in C++ senza usare una sola riga del *vecchio C*, in pratica questo non viene quasi mai fatto, proprio per questa sua natura e per il fatto che ogni programmatore C++ arriva generalmente dal C.

sì è vero, il suo inventore preme molto su questo tasto... però le performance di cout e co. sono invereconde... se non hai limiti di prestazione allora sono più che concorde... se no stdio!
Per questo, il mio consiglio: se vuoi imparare VERAMENTE la programmazione ad oggetti in C++, chiudi il libro del C, mettilo su una mensola ed inizia a leggere mattina e sera il Soustroup. Solo così puoi fare veramente tuoi i concetti del C++ e della programmazione ad oggetti in generale. Purtroppo, il C rappresenta spesso il più grande ostacolo nel corretto apprendimento del C++ (parlo per esperienza). Imparare a fondo il C può rendere *al tuo cervello* molto più ostico l'apprendimento di un paradigma ad oggetti, in quanto quest'ultimo è molto più vicino alla mentalità umana che a quella del calcolatore (laddove per il C vale il discorso inverso).

mmm... secondo me non è molto simile: io trovo molto naturale fare script simil shell e co. ma nessun metodo di programmazione proposto nè da c nè da c++ mi è sembrato intuitivo. diciamo che è più elastico perchè di solito fai mille pezzettini e poi li rimetti insieme, mentre il c++ richiede di progettare adeguatamente le relazioni tra classi e quindi vincola a progettare bene fin da subito... IMHO ovviamente. comunque è vero: i metodi di OOP sono molto diversi da quelli procedurali... io solitamente facco della robaccia ibrida: uso il c in maniera molto simile al c++: creo una struttura per ogni presunto "oggetto" e nello stesso file .h creo tutte le funizioni per gestirla (costrutture distruttore, metodi di get/set e funzioni varie), poi implemento tutto in un unico file .c e utilizzo le funzioni senza mai accedere direttamente alle strutture, almento che non debba fare codice molto veloce: in maniera simile ad una classe. è vero però che se devo costruire qualcosa di complesso di solito lo faccio a mattoncini: tante piccole struttue (typedef struct) che vengono inglobate tramite puntatori in quelle più grandi... al contrario quando ho usato un pò di c++ usavo l'eredità per inglobare una struttura semplice e ramificare da lì le classi specializzate anche se comunque non ho mai abbandonato stdio e string all'interno dei metodi delle classi :-)... IMHO la vera differenza sta nell'uso della virtualizzazione - senza citare i template che non hanno alcun paragone in c per quel che mi viene in mente adesso :roll: - .
Acquisire la giusta capacità d'astrazione non è cosa facile già essendo *programmatori vergini*, figurati essendo indottrinati dell'opposta filosifa..
Inoltre la tentazione di usare scorciatoie in C è veramente forte.

che intendi? usare scorciatoie lavorando in c o usare il c come scorciatoia in c++? non ho capito :-/

M
Avatar utente
absinthe
Iper Master
Iper Master
 
Messaggi: 2354
Iscritto il: sab mag 14, 2005 23:00
Località: Prato
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze

Re: c o c++ quale dei due?

Messaggioda kos » gio apr 17, 2008 17:20

Se 6 proprio a digiuno con la programmazione, inizia con Java e poi passa al C. Io sono del parere di utilizzare la tecnologia più appropriata in base a quello che si deve fare. Se devo fare programmazione di sistema, certo non vado ad utilizzare Java, utilizzo il C. Se devo invece scrivere un applicativo e non ho particolari esigenze nella gestione della memoria, ma chi cavolo me l'ho fa fare ad andarmi a complicarmi la vita con i puntatori. Meglio utilizzare Java.
Avatar utente
kos
Linux 1.0
Linux 1.0
 
Messaggi: 23
Iscritto il: sab mar 22, 2008 19:53
Località: dmi.unict
Slackware: 12

Re: c o c++ quale dei due?

Messaggioda carocco » ven apr 18, 2008 11:10

Ciao a tutti.
Intervengo su questa interessante discussione per due motivi.
Il primo, comunicare che lo Stroustrup costa "solo" 45 euro (e lo consiglio agli interessati)

Per quanto riguarda il confronto tra c e c++, sconsiglierei come ha gia' fatto qualcuno di studiare prima il c e poi il c++ come una sua "evoluzione". In realta' si corre il rischio (come sottolinea lo stesso Stroustrup) di scrivere codice c++ continuando a pensare in c, quindi trascurando le numerose potenzialita' del c++.
Personalmente, sono piu' di 10 anni che sviluppo in c e non lo baratterei con niente..anche se a volte l'utilizzo di c++ mi si e' reso obbligatorio (per via di alcune librerie non disponibili/compatibili col c).

Da chi consiglia di provare java, mi permetto invece di dissentire: personalmente trovo java antipatico. Consiglio invece ai programmatori java di farsi un giro col c++.
Avatar utente
carocco
Linux 1.0
Linux 1.0
 
Messaggi: 49
Iscritto il: gio apr 12, 2007 14:31

Precedente

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti