Hjem Personlig finansiering Unngå bugs i ditt C ++-program - dummies

Unngå bugs i ditt C ++-program - dummies

Innholdsfortegnelse:

Video: Slik unngår du veggedyr: Tipsene du trenger 2024

Video: Slik unngår du veggedyr: Tipsene du trenger 2024
Anonim

Ikke start feilsøking av koden før du fjerner eller i det minste forstår alle advarslene som genereres under kompilering. Aktiverer alle advarselsmeldingene hvis du ignorerer dem, gjør du det ikke bra. Hvis du ikke forstår advarselen, ser du opp. Hva du ikke kjenner vil skade deg.

Vedta en klar og konsistent kodestil

Koding i en klar og konsekvent stil forbedrer ikke bare lesbarheten av programmet, men resulterer også i færre kodingsfeil. Husk, jo mindre hjernekraft du må bruke til å dechiffrere C ++-syntaks, desto mer har du igjen for å tenke på logikken til programmet ved hånden. En god kodestil gjør at du enkelt kan gjøre følgende:

  • Differensiere klassenavn, objektsnavn og funksjonsnavn
  • Vet noe om objektet basert på navnet sitt
  • Differensiere preprosessorsymboler fra C ++-symboler (det vil si #definerte objekter skal skille seg ut)
  • Identifiser blokker av C ++-kode på samme nivå (dette er resultatet av konsistent innrykk)

I tillegg må du opprette en standard modul header som gir informasjon om funksjonene eller klassene i modulen, forfatteren (antagelig, det er du), datoen, versjonen av kompilatoren du bruker, og en modifikasjonshistorikk.

Til slutt bør alle programmerere involvert i et enkelt prosjekt bruke samme stil. Å forsøke å dechiffrere et program med et lappeteppe av forskjellige kodingsstiler, er forvirrende.

Kommenter koden din mens du skriver den.

Du kan unngå feil hvis du kommenterer koden din mens du skriver den i stedet for å vente til alt fungerer, og deretter gå tilbake og legg til kommentarer. Ikke å ta seg tid til å skrive voluminøse overskrifter og funksjonsbeskrivelser til senere, er forståelig, men du har alltid tid til å legge til korte kommentarer mens du skriver koden.

Korte kommentarer bør være opplysende. Hvis de ikke er det, er de ikke verdt mye, og du bør gjøre noe annet i stedet. Du trenger all den opplysning du kan få når du prøver å gjøre programarbeidet ditt. Når du ser på et stykke kode du skrev for noen dager siden, kan kommentarer som er korte, beskrivende og til et punkt gi et dramatisk bidrag til å hjelpe deg med å finne ut nøyaktig hva det var du prøvde å gjøre.

I tillegg gjør konsekvent kodeinntrykk og navngivningskonvensjoner koden enklere å forstå. Det er veldig bra når koden er lett å lese etter at du er ferdig med det, men det er like viktig at koden er lett å lese mens du skriver den. Det er da du trenger hjelpen.

Enkelt trinn hver vei minst én gang

Som programmerer er det viktig for deg å forstå hva programmet ditt gjør. Ingenting gir deg en bedre følelse av hva som foregår under hetten enn å sette opp programmet med en god debugger. (Debuggerne som inngår i IDE for interaktive kompilatorer fungerer bare bra.)

Utover det, trenger du noen ganger råmateriale til å finne ut noen bizarre oppførsel når du skriver et program. Ingenting gir deg det materialet bedre enn enkle nye funksjoner når de kommer i bruk.

Til slutt, når en funksjon er ferdig og klar til å bli lagt til programmet, må hver logisk bane reist minst en gang. Bugs er mye lettere å finne når funksjonen blir undersøkt av seg selv, snarere enn etter at den er blitt kastet i potten med resten av funksjonene - og din oppmerksomhet har gått på nye programmeringsutfordringer.

Unngå overbelastning av operatører

Annet enn å bruke operatørens operatør << () og operatør >> () og operatøroperatøren operatør = () , bør du sannsynligvis holde av overbelaste operatører til du føler deg komfortabel med C ++. Selv om et godt sett med overbelastede operatører kan øke nytten og lesbarheten til en ny klasse, er overbelastningsoperatører (unntatt de tre som nettopp er oppført) nesten aldri nødvendig, og kan legge til betydelig for debugging woes som ny programmerer. Du kan få samme effekt ved å definere og bruke de riktige offentlige medlemsfunksjonene i stedet.

Etter at du har vært C-Plus-Plussing i noen måneder, vær så snill å returnere og begynne å overbelaste operatørene til ditt hjertes innhold.

Balance heap handling

Generelt bør programmører allokere og frigjøre heapminne på samme nivå. "Hvis en medlemsfunksjon MyClass:: create () tildeler en blokk med heapminne og returnerer den til den som ringer, så skal det være en medlemsfunksjon MyClass:: release () at returnerer minnet til bunken. Spesielt, MyClass:: create () burde ikke kreve at foreldrefunksjonen frigjør selve minnet. Dette unngår absolutt ikke alle minneproblemer - foreldrefunksjonen kan glemme å ringe MyClass:: release () - men det reduserer muligheten litt.

Bruk unntak for å håndtere feil

Unntaksmekanismen i C ++ er utviklet for å håndtere feil på en hensiktsmessig og effektiv måte. Nå som denne funksjonen har blitt standardisert, bør du bruke den. Den resulterende koden er lettere å skrive, lettere å lese og lettere å vedlikeholde. Dessuten har andre programmerere kommet til å forvente det - du vil ikke skuffe dem, ville du?

Unngå flere arv

Flere arv, som operatøroverbelastning, legger til et annet nivå av kompleksitet som du ikke trenger å håndtere når du nettopp har startet. Heldigvis kan de fleste virkelige relasjoner beskrives med enkelt arv.

Du er velkommen til å bruke flere arvelige klasser fra kommersielle biblioteker, for eksempel Microsoft MFC-klassene.Microsoft har brukt mye tid på å sette opp sine klasser, og det vet hva det gjør.

Når du føler deg komfortabel med ditt forståelsesnivå for C ++, kan du eksperimentere med å sette opp flere arvshierarkier. På den måten vil du være klar hvis du trenger det.

Unngå bugs i ditt C ++-program - dummies

Redaktørens valg

Vanlige medikamenteffekter for legeassistenteksamen - dummies

Vanlige medikamenteffekter for legeassistenteksamen - dummies

Bli kjent med vanlige bivirkninger for legeassistenteksamen (PANCE). Den gjennomsnittlige personen over 60 år tar omtrent ni reseptbelagte medisiner og ser minst fire forskjellige helsepersonell. Potensialet for noen til å oppleve bivirkningene av disse medisinene er enorm, og det er potensialet for signifikante legemiddelinteraksjoner. ...

Epidemiologiske studier dekket av legeassistenteksamen - dummies

Epidemiologiske studier dekket av legeassistenteksamen - dummies

For legeassistenteksamen (PANCE) du bør være oppmerksom på forskjellene mellom typer epidemiologiske studier. Det første trinnet er å gjenkjenne om studiet er en retrospektiv studie eller en prospektiv studie: Retrospektiv: En retrospektiv studie betyr at du ser på fortiden for å finne ut hva som skjedde. For eksempel, en ...

Forhold som påvirker pleura dekket på legeassistenteksamen - dummies

Forhold som påvirker pleura dekket på legeassistenteksamen - dummies

Du kan se Spørsmål om legeassistenteksamen om forhold som påvirker pleura. Du må vurdere evaluering og behandling av pleural effusions, pneumothorax og pleurisy. Væske rundt lungene: Pleural effusjon Normalt er pleura et tomt rom; en pleural effusjon er ganske enkelt væske som opptar den plassen. Pleural ...

Redaktørens valg

Slik setter du automatiske varsler på LinkedIn - dummies

Slik setter du automatiske varsler på LinkedIn - dummies

Sikkert, du kan gjøre alt fotverket ved å gå til LinkedIn hjemmesiden og ser deg rundt for å se hvilke meldinger eller endringer som har skjedd. Den sanne kraften til å holde kontakten, har imidlertid LinkedIn, kontakter deg automatisk med den informasjonen du trenger for å holde deg informert. Klikk på Administrer-koblingen ved siden av Personvern og innstillinger ...

Tips for å administrere dine LinkedIn Post-interaksjoner - dummies

Tips for å administrere dine LinkedIn Post-interaksjoner - dummies

Når du klikker Publiser på LinkedIn, kan du tenke at jobb er ferdig, men det er bare begynt. Etter hvert som flere og flere leser innlegget ditt, kan de samhandle med innlegget og med deg som forfatter. Her er noen ting å huske på etter at du har publisert et innlegg: Overvåk statistikken. Når du ...

Forstå LinkedIn Pulse - dummies

Forstå LinkedIn Pulse - dummies

Har du sjekket ut LinkedIn Pulse ennå? Tenk deg om du leser en avis som bare viste deg artikler som har betydning for deg. (For det hele, for mange av dere, tenk på de dagene du kanskje har lest en avis.) Tilpassede nyheter er mulige, og på LinkedIn kalles det LinkedIn Pulse. Alt du trenger å gjøre for å ...

Redaktørens valg

Hva Dragon NaturallySpeaking kan gjøre for deg - dummies

Hva Dragon NaturallySpeaking kan gjøre for deg - dummies

Noe om å diktere til en datamaskin vekker alle slags urealistiske forventninger hos mennesker. Hvis du forventer at du skal servere deg frokost på sengen, har du lykke til. Denne artikkelen ble ikke skrevet ved å si "Computer, skriv en bok om NaturallySpeaking. "Forfatteren måtte diktere det ord for ord, akkurat som hun ville hatt ...

Når Start ikke starter i NaturallySpeaking - dummies

Når Start ikke starter i NaturallySpeaking - dummies

Når du gir kommandoen "Start" til Dragon NaturallySpeaking, du sier "Start America Online" eller "Start Microsoft Works" eller "Start Quicken", og programmet skal åpnes. Men hva hvis det ikke gjør det? Hva er greia? Start-kommandoen starter et program som er installert på maskinen din, og har enten et snarveisikon på ...

Når NaturallySpeaking Menykommandoer ikke fungerer - dummies

Når NaturallySpeaking Menykommandoer ikke fungerer - dummies

Når du gir en kommando til NaturallySpeaking, for eksempel "Klikk" og ingenting skjer, det sannsynlige problemet er at menyen Bruk menyer som er kompatible med skjermlesere, ikke er merket av. For å sjekke det: Velg Verktøy → Valg i vinduet NaturallySpeaking. Det er ikke noe poeng å fortelle deg hvordan du får tilgang til dette med stemmen, for det er akkurat ...