Quale è la differenza ?

di il
2 risposte

Quale è la differenza ?

Salve a tutti, non riesco a capire quale è la differenza tra C++ e C con le classi. Ho provato a cercare su google , però principalmente le risposte che ho trovate sono uguali: "C con le classi è il primo nome di C++". Esiste una risposta diversa da questa ? Se uno conosce il C++ significa che conosce il C con le classi ?

2 Risposte

  • Re: Quale è la differenza ?

    Il C non ha classi e non è ad oggetti,il C++ sì invece. È bene sottolineare che il C++ non soppianta il C e né tantomeno gli è superiore. Il C++ si usa in ambito desktop per sviluppare applicazioni e qualcuno,ignorante,lo usa per programmare mcu a un livello amatoriale ovviamente ed è male. Il C in coppia con l'assembly lo si usa per scrivere software più serio come sistemi operativi, compilatori,driver,programmi per MCU,sistemi critici(dove ci sono a rischio tanti soldi e/o persone) etc..
    Diciamo che con C+Assembly puoi scrivere di tutto.
    Questo è un sunto di un post di @MAW che non posso linkare.
  • Re: Quale è la differenza ?

    Bhè mi sembra un pochino esagerato.
    E' come scrivere in spagnolo invece che in italiano.
    Puoi dire le stesse cose, in modo leggermente diverso, con una lingua "cugina".
    Assembly ormai è usato pochissimo (o per nulla) se non nei casi veramente indispensabili, perchè la portabilità su CPU diverse (telefonini per capirci, ma anche dispositivi CPU non Intel (Marvell ad esempio)) è diventata sempre più importante.

    Suggerisco di lasciar perdere queste "preoccupazioni" terminologiche.
    Se sei curioso troverai tante storie del C++ su internet (usa google, sono pigro).
    In superestrema sintesi C++ nasce proprio come C con "un po'" di "roba" in più (le classi).
    Inizialmente era così poco che addirittura i compilatori C++ non esistevano: si limitavano a tradurre i primi programmi C++ in...C, per poi compilare C.
    In sostanza erano "preprocessori".
    Man mano sono state aggiunte tante belle cose (per lo più inutili) a C++ in varie revisioni del linguaggio, senza per la verità ottenere chissà quali miracoli (grosso modo quello che potevi fare con C++ "vecchio" copre praticamente tutto quello che fai col C++ "nuovo").

    Il vero "distacco" è stata l'introduzione di una serie di funzioni di libreria standard (cioè in teoria disponibili su ogni piattaforma dove c'è C++) in modo da NON caricare il linguaggio con troppe "robe" (strutture dati etc), mantenendo un buon contatto col C (int, long, char, puntatori e così via invece di stringhe, liste, alberti etc)

    Quindi C++ "oggi" è un combo linguaggio-librerie, un po' come in altri casi ci sono linguaggi e framework (ovviamente sto usando termini niubbeschi).

    Ma il mondo cambia ancora, quindi mentre "una volta" C++ serviva per rendere più facile programmare le GUI (oltre a mille altre cose, ma era quello l'uso desktop), "oggi" il mondo è diventato mobile, e qui gli strati di software sono mooolto più spessi.
    Tanto che esistano addirittura cross-compiler di applicazioni ... javascript... sì... javascript...

    Ed il mondo è praticamente ovunque Web, dove il C++ serve praticamente a nulla (lato client)

    C++ è quindi C con classi? In realtà sì, più altra croppa, più le librerie standard.
    Puoi scrivere ottimi programmi C con classi (ovvero C più "un pochino" di C++, senza tutte le funzioni per lo più inutili aggiunte)? Certo
    Ma le librerie standard C++ sono comode? No, sono comodissime!
Devi accedere o registrarti per scrivere nel forum
2 risposte