Nwlapcug.com


Differenze tra strutture & classi



Maggior parte dei programmatori sapere che un programma per computer contiene nient'altro che i dati e le istruzioni per modificare i dati. Il vostro obiettivo, come un programmatore, è per rappresentare i dati nella struttura più efficiente e leggero possibile. "Strutture" e "classi" consentono di rappresentare tipi diversi di dati. Molte lingue dispongono di entrambe le classi e strutture, tra cui C++, c#, Java e Visual Basic. (Alcune lingue si riferiscono ad una struttura come "struct".) È possibile creare un'istanza di entrambe le classi e strutture in modo convenzionale e accedere ai membri di entrambi utilizzando la notazione punto-punto, ma le differenze tra i due dati tipi superano queste poche somiglianze.

Scopo

Le classi costituiscono il fondamento di più moderni linguaggi object-oriented e consentono infinite manipolazione. Quando si utilizza una classe per rappresentare i dati, hai tutta la potenza di un linguaggio di programmazione orientato agli oggetti a vostra disposizione. Rendere una classe il tipo di dati predefinito e utilizzare quando non si è certi quali opere di tipo di valore migliore. Utilizzare una struttura, al contrario, solo quando è necessario modificare un numero di valori di tipo non di riferimento come unità. I programmatori in genere utilizzare strutture per rappresentare oggetti geometrici, punteggi di gioco e altre informazioni relativamente semplice.

Tipo sottostante

Una struttura è un tipo di valore, mentre una classe è un tipo di riferimento. Tipi di valore rappresentano numeri e testo ed esistano solo nello stack. Ciò significa che quando si copia una struttura, si crea un nuovo elemento in memoria. Modifiche all'oggetto nuovo non influiscono sull'oggetto originale. Tipi di riferimento, al contrario, esistono sia sullo stack e heap. Quando si copia una classe, sei davvero solo copiare l'indirizzo di riferimento a una posizione di memoria nell'heap. Così, quando si modifica una copia di un oggetto, è inoltre modificare tutte le copie in memoria.

Distruttori

A seconda della lingua che stai usando, è spesso possibile utilizzare distruttori con gli oggetti della classe. In C++, come pure nella programmazione ADO.Net, distruttori consentono di garantire che il processore distrugge oggetti intensivo di memoria, non appena non sono più necessari. Molti linguaggi di programmazione, ad esempio c#, tuttavia, non consente di utilizzare i distruttori con una struttura. Invece, l'oggetto di garbage collector dispone di strutture automaticamente.

Ereditarietà

Come riferimento di tipi, le classi possono ereditare da altre classi. Ciò significa che è possibile creare una classe di "ragazzo" che eredita tutte le proprietà e gli oggetti da una classe di "persona". A sua volta, la classe person può ereditare i membri della classe "creatura". Strutture, al contrario, non possono ereditare da altre strutture. Di conseguenza, sono intrinsecamente sigillati.