data anvendes i c + +

fremstilling, data henviser til, kun at give væsentlige oplysninger til omverdenen og skjule deres baggrundsoplysninger, dvs. at repræsentere de nødvendige oplysninger i programmet, uden at de oplysninger, data abstraktion er en programmering (og design) teknik, som er baseret på en adskillelse af grænseflade og gennemførelse. lad tager et eksempel fra det virkelige liv i et tv, som du kan vende om og af skifte kanal, tilpasse mængden, og tilføje eksterne komponenter, f.eks. talere, video, dvd - afspillere, men du kender ikke sin interne oplysninger, at, du ved ikke, hvordan det modtager signaler via luften eller gennem et kabel, hvor det fører dem, og endelig har dem på skærmen. dermed kan vi sige, at en televikrafttrædelse skelner klart mellem sine interne gennemførelse af dens eksterne grænseflader, og du kan lege med dets grænseflader som power knappen, kanal gearskift, og bind kontrol uden at have nul kendskab til dets interne affærer. nu, hvis vi taler om c + + programmering, c + + klasser giver store grad af data abstraktion,.de giver tilstrækkelige offentlige midler til verden udenfor, at lege med funktionaliteten af formålet med og til at manipulere objekt data, dvs. uden faktisk at vide, hvordan klasse er blevet gennemført internt. for eksempel dit program kan ringe til det, sort(), funktion, uden at vide hvad algoritme funktionen rent faktisk anvender for at sortere i værdier.faktisk er den, der ligger til grund for gennemførelsen af sortering funktioner kan skifte mellem udslip af biblioteket, og så længe den grænseflade, forbliver det samme, din funktion vil stadig arbejde. i c + +, vi bruger, klasser, til at definere vores egen abstrakt datatyper (adt).du kan bruge den, cout, genstand for klasse, ostream, - data til standard output som denne:,&#omfatter < iostream > anvendelse af namespace std; int vigtigste () (cout < < "hej c + +" < < endl. tilbage, 0;;), her, du har ikke brug for at forstå, hvordan cout, viser den tekst, på brugerens skærm.du skal kun de mennesker og de underliggende gennemførelse af cout er frie til at ændre. adgang etiketter håndhæve fremstilling:, c + +, vi bruger adgang etiketter at fastlægge abstrakt grænseflade til klassen.en kategori kan indeholde nul eller mere adgang etiketter:,,, medlemmer er defineret med en offentlig mærket er tilgængeligt for alle dele af programmet.fremstilling af en type data er defineret ved sin offentlige medlemmer.,,, medlemmer er defineret med en privat etiket, ikke er tilgængelige for kode, der anvender klasse.den private del skjule gennemførelsen af kode, der anvender den type,.,,, der er ingen begrænsninger for, hvor ofte adgang kan etiketten anføres.hver adgang mærkningen angiver omfanget af de efterfølgende medlem adgang definitioner.de angivne adgang niveau forbliver i kraft indtil næste adgang etiket er stødt på eller lukker lige klar til klassen krop er set. ydelser af data: data er fremstilling fremstilling to vigtige fordele:,,, klasse optegnelser er beskyttet mod utilsigtet bruger plan fejl, som kan ødelægge staten genstand.,, den gennemførelse, kan udvikle sig med tiden som reaktion på ændrede krav eller insekt betænkninger, uden at ændre på brugerniveau kode.,,, ved at definere data kun for medlemmer i den private del af klasse, klasse forfatter er frie til at foretage ændringer i dataene.hvis gennemførelsen ændringer kun klasse kode skal undersøges for at se, hvad der påvirker ændringer kan have.hvis data er offentlige, så enhver funktion, der er direkte adgang til de oplysninger, medlemmerne af det gamle repræsentation kan være brækket. data abstraktion eksempel:, c + + - program, hvor man gennemfører en klasse med offentlige og private medlemmer er et eksempel på data abstraktion.overveje følgende eksempel:,&#omfatter < iostream > anvendelse af namespace std. klasse snog {offentlige: //konstruktøren snog (int i = 0) (i alt = jeg;} //grænseflade til verden udenfor. addnum (int) {i alt + = nummer} //grænseflade for verden int gettotal() {tilbage alt}; private: //gemt data fra verden udenfor int samlede;}; int vigtigste () (tillæg a a.addnum (10); a.addnum (20); a.addnum (30); cout < < "i alt" < < a. gettotal() < < endl., tilbagevenden 0}, når ovennævnte adfærdskodeks er udarbejdet og gennemført, giver følgende resultat: i alt 60 over klasse tilføjer sammenog returnerer de beløb.den offentlige medlemmer, addnum, og gettotal, grænseflader til verden udenfor, og brugeren skal ved at benytte klasse.den private medlem, samlede, er noget, som brugeren behøver ikke vide noget om, men der er brug for klasse til at fungere ordentligt. af strategien:, fremstilling adskiller kode i grænseflade og gennemførelse.så mens designer din komponent, skal du holde grænseflade, uafhængig af gennemførelsen, så hvis du ændrer underliggende implementering interface vil forblive intakt. i dette tilfælde, hvad programmer anvender disse grænseflader, de ikke ville blive påvirket, og vil have en omarbejdelse af dette katalog med den seneste gennemførelse.



Previous:
Next Page: