|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 502
|
c++, classi e oggetti
sto leggendo il libro c++ di Shidth... e non ho capito una cosa... perchè usare le classi e gli oggetti??
nel senso: le funzioni hanno molti vantaggi (decentralizzazione del sw, riutilizzabilità etc)... gli oggetti??? spero di essere stato chiarto, anche se non penso... perchè manco io ho le idee chiare sull'argomento ![]() grazie a tutti coloro che mi risponderanno |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
|
Quote:
detta in questo modo per facilitare la comprensione a chi provenga da linguaggi e paradigmi eclusivamente procedurali , perchè in effetti si può applicare il paradigma a oggetti anche programmando in C , progettando adeguatamente strutture dati e funzioni ma in realtà una delle caratteristiche principali della programmazione a oggetti, anche se plausibilmente ostica da acquisire e padroneggiare all' inizio, prevede l' aggregazione, ai dati, delle funzioni che li manipolano (che diventano metodi di classe ): questo è detto incapsulazione(*) ed è importante per vari motivi: da una parte la possibilità di limitare la visibilità dei dati membro, e quindi contingentarne l' accesso al codice esterno alla classe - ah per inciso, è buona norma limitare al minimo indispensabile i dati di classe con visibilità "pubblica", e prevedere piuttosto un metodo di modifica e uno di recupero; dall' altra, rende disponibile il riuso del codice: altre classi possono riutilizzare i metodi implementate dalla prima, eventualmente in aggiunta a metodi propri, dichiarandosi sue "parenti" ( cioè "figlie", da cui il meccanismo noto come ereditarietà: nel senso concreto del termine, visto che le classi "figlie" ereditano -genericamente, poi ci sono delle considerazioni da fare- i dati e i metodi della classe "genitore") inoltre, soprattutto quando si ha a che fare con classi già realizzate da sfruttare in un proprio progetto, rende apparente il modello in cui entità discrete (gli oggetti) comunicano tra loro tramite attraverso messaggi scambiati attraverso le loro interfaccie : è importante notare questo, perchè può capitare spesso e volentieri, di concentrarsi solo sullo sfruttamento corretto dell' interfaccia (in pratica, chiamata ai metodi della classe) ignorando l' implementazione e le strutture dati che la classe contiene (oggetti come "scatole nere")
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 04-02-2007 alle 14:38. |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Mi esercito in un'azzardata divinazione ma io credo che quando fale legga le frasi dove modularità, riuso e incapsulamento diventano grandiose conquiste dell'orientamento agli oggetti egli pensi tra sè e sè "ma io questa roba già la faccio in C, che è procedurale".
Se così fosse allora avrei la conferma di una mia personalissima teoria: ciò che oggi chiamiamo orientamento agli oggetti è una massi indistinta di paroloni tutti riferiti a scarti di produzione di quella che era l'idea originaria di oggetto. Molto curiosamente noi abbiamo perso nel tempo la parte significativa e comprensibile di quell'idea e ci siamo concentrati sulla porzione insignificante e afflitta da numerosi errori genetici (in primis i concetti di classe ed ereditarietà).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 502
|
Quindi sono solo un evoluzioni delle funzioni (con i principi fondamentali sviluppati e il nuovo principio dell'ereditarietà?
@PGI-Bis: +o- 'ho pensato ![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
|
|
![]() |
![]() |
![]() |
#6 | ||
Member
Iscritto dal: Dec 2005
Città: Cinisello Balsamo (MI)
Messaggi: 163
|
Quote:
Quote:
Ovviamente è qualcosa di più sofisticato di una struct+funzioni, però rende l'idea...
__________________
Software Failure: Guru Meditation |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:11.