Forskjeller mellom Strukturer og Classes

Forskjeller mellom Strukturer og Classes


De fleste programmerere vet at et dataprogram inneholder noe mer enn data og instruksjoner for manipulering av data. Ditt mål, som programmerer, er å representere data på en mest mulig effektiv og lett struktur mulig. Begge "klasser" og "strukturer" tillate deg å representere ulike typer data. Mange språk har begge klasser og strukturer, inkludert C ++, C #, Java og Visual Basic. (Noen språk referere til en struktur som en "struct.») Kan instantiate begge klasser og strukturer i den konvensjonelle måten og få tilgang til medlemmene av både ved bruk av dot-punkt notasjon, men forskjellene mellom de to datatypene oppveie disse få likheter.

Hensikt

Klassene danner grunnlaget for de fleste moderne objektorienterte språk og gir mulighet for endeløs manipulasjon. Når du bruker en klasse for å representere dine data, har du full effekt av et objektorientert programmeringsspråk til din disposisjon. Lag en klasse standard datatype og bruke den når du ikke er sikker på hvilken verditype som fungerer best. Bruk en struktur, i motsetning, bare når du trenger å manipulere et sett antall ikke-referansetypeverdier som en enhet. Programmerere bruker vanligvis strukturer for å representere geometriske objekter, poengsummer og andre relativt enkel informasjon.

Underliggende liggende~~POS=HEADCOMP Type

En struktur er en verditype, mens en klasse er en referanse type. Verdi typer representerer tall og tekst, og finnes bare i bunken. Dette betyr at når du kopierer en struktur, oppretter du et helt nytt element i minnet. Modifikasjoner til det nye objektet påvirker ikke det opprinnelige objektet. Referanse typer, derimot, finnes både på stakken og haugen. Når du kopierer en klasse, er du egentlig bare kopiere referansen adressen til et minneområde på haugen. Så når du endrer en kopi av et objekt, må du også endre alle kopier i minnet.

destructors

Avhengig av språket du bruker, kan du ofte bruke destructors med klasse objekter. I C ++, samt i ADO.Net programmering, destructors tillate deg å kontrollere at prosessor ødelegger minnekrevende gjenstander så snart de ikke lenger er nødvendig. Men mange programmeringsspråk som C #, ikke la deg bruke destructors med en struktur. I stedet disponerer søppel samler objekt av strukturer automatisk.

Arv

Som referanse typer, kan klasser arver fra andre klasser. Dette betyr at du kan lage en "gutt" klasse som arver alle objekter og egenskaper fra en "person" klasse. I sin tur, kan personen klassen arver medlemmer av "skapning" -klassen. Strukturer, derimot, ikke kan arve fra andre strukturer. Følgelig er de iboende forseglet.