Le differenze tra le strutture e Lezioni

March 26

Le differenze tra le strutture e Lezioni


La maggior parte dei programmatori sanno che un programma per computer contiene niente di più che i dati e le istruzioni per manipolare i dati. L'obiettivo, come programmatore, è per rappresentare i dati nella struttura più efficiente e leggero possibile. Entrambe le "classi" e "strutture" consentono di rappresentare i diversi tipi di dati. Molte lingue sono dotate di entrambe le classi e le strutture, tra cui C ++, C #, Java e Visual Basic. (Alcune lingue si riferiscono ad una struttura come un "struct.") È possibile creare un'istanza di entrambe le classi e strutture in modo convenzionale e accedere ai membri di entrambe notazione del punto-punto utilizzando, ma le differenze tra i due tipi di dati superano queste poche somiglianze.

Scopo

Le classi sono alla base della maggior parte dei moderni linguaggi orientati agli oggetti e consentono la manipolazione senza fine. Quando si utilizza una classe per rappresentare i dati, hai tutta la potenza di un linguaggio di programmazione orientato agli oggetti a vostra disposizione. Fare una classe il tipo di dati predefinito e usarlo quando non si è certi che tipo di valore funziona meglio. Utilizzare una struttura, al contrario, solo quando è necessario per manipolare un determinato numero di valori di tipo non di riferimento come unità. I programmatori utilizzano in genere strutture per rappresentare oggetti geometrici, punteggi dei giochi e altre informazioni relativamente semplice.

Tipo Sottostante

Una struttura è un tipo di valore, mentre una classe è un tipo di riferimento. I tipi di valore rappresentano i numeri e testo, ed esistono solo nella pila. Questo significa che quando si copia una struttura, si crea un nuovo elemento del tutto in memoria. Le modifiche al nuovo oggetto non influenzano l'oggetto originale. I tipi di riferimento, invece, esistono sia in pila e il mucchio. Quando si copia una classe, si sono in realtà solo copiando l'indirizzo di riferimento per una locazione di memoria sul mucchio. Così, quando si modifica una copia di un oggetto, è anche modificare tutte le copie in memoria.

distruttori

A seconda della lingua che si sta utilizzando, si può spesso usare i distruttori con oggetti di classe. In C ++, così come nella programmazione ADO.Net, distruttori consentono di garantire che il processore distrugge oggetti intensivo di memoria, non appena non sono più necessari. Tuttavia, molti linguaggi di programmazione, come C #, non consentono di utilizzare i distruttori con una struttura. Al contrario, l'oggetto garbage collector dispone di strutture automaticamente.

Eredità

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