Inhoudsopgave:
Video: Linux Tutorial for Beginners: Introduction to Linux Operating System 2024
Wanneer u een programma in C ++ invoert, komt de Build-stap vrijwel zeker niet zonder fouten tot stand. Een Gold Star-programma is er een dat werkt wanneer je het de eerste keer bouwt en uitvoert. Je zult bijna nooit een Gold Star-programma schrijven in je hele programmeercarrière. Niemand doet. Zweet het niet.
Dit zijn slechts twee van de talloze manieren om het in C ++ te verknoeien. Leren interpreteren wat de compiler u probeert te vertellen - met zijn fout- en waarschuwingsberichten - is een belangrijk onderdeel van het leren van de taal. Het kan alleen komen van vele maanden oefenen en ervaring opdoen met de taal. Hopelijk zullen deze twee voorbeelden je een vliegende start geven.
Verkeerd gespelde commando's in C ++
Verkeerd gespelde commando's zijn de makkelijkste fouten om te identificeren en te corrigeren. Om het punt te demonstreren, is een extra t toegevoegd aan deze regel code zodat deze
intt celsius aangeeft;
Anders dan int, heeft het woord intt geen betekenis voor C ++. Door het resulterende programma met deze lijn te bouwen, werd het weergegeven scherm gegenereerd.
Let eerst op het kleine rode blokje op regel 14 dat ergens op deze regel een probleem aangeeft. Je kunt er alles over lezen op het tabblad Berichten bouwen in het venster rechtsonder. Hier kun je de volgende berichten zien:
In functie 'int main (int, char **)': 14 fout: 'intt' is niet gedeclareerd in deze scope 14 fout: verwacht '; 'before' celsius '16 error:' Celsius 'is niet gedeclareerd in deze scope
De eerste regel geeft de naam van de functie aan die de fout bevat. Het is gemakkelijk te geloven dat alle code in dit programma zich in de functie main bevindt. De volgende regel is de sleutel. Dit zegt in wezen dat C ++ niet begreep wat intt is op regel 14 van het programma.
De foutmelding is een beetje cryptisch, maar het volstaat om te zeggen dat je bijna elke keer als je iets verkeerd spelt dezelfde foutmelding krijgt. De overige foutmeldingen zijn slechts bijproducten van de oorspronkelijke fout.
Eén C ++ -fout kan een cascade van foutmeldingen genereren. Het is mogelijk om meerdere fouten te identificeren en te verhelpen in een enkele bouwpoging, maar het vergt ervaring om erachter te komen welke fouten voortvloeien uit welke andere. Richt je nu op het eerste foutbericht. Los het op en herbouw het programma.
Ontbrekende puntkomma in C ++-code
Een andere veel voorkomende fout is om een puntkomma achter te laten. Het bericht dat deze fout genereert kan een beetje verwarrend zijn. Om te demonstreren, verwijdert u de puntkomma uit de verklaring op regel 14 zodat deze
int celsius cout << "aangeeft, voert u de temperatuur in Celsius in:";
De fout gerapporteerd door C ++ voor deze overtreding verwijst niet naar regel 14, maar naar de volgende regel, 15:
15 fout: verwachte initialisatie vóór 'cout' 16 fout: 'celsius' is niet gedeclareerd in deze scope > Dit is gemakkelijker te begrijpen als u bedenkt dat C ++ newlines beschouwt als slechts een andere vorm van witruimte.Zonder de puntkomma voert C ++ de twee regels samen. Er is geen afzonderlijke regel 14 meer. C ++ kan het eerste deel interpreteren, maar begrijpt de aanloopzin niet die begint met cout.
Ontbrekende puntkomma's genereren vaak foutmeldingen die weinig overeenkomsten vertonen met de daadwerkelijke foutmelding en ze bevinden zich bijna altijd op de volgende regel na de feitelijke fout. Als u een ontbrekende puntkomma vermoedt, begint u aan de regel met de gerapporteerde fout en scant u achteruit.