Ett första program

Vi ska här gå igenom ett första enkelt program skrivet i C++ samt titta en aning på vad det innehåller och var i detta kompendium man kan hitta mera information om just den aspekten av C++.

Hello world!

Det program man traditionsenligt visar som första program är ett som skriver ut texten Hello world! på skärmen. Så även i detta kompendium. Programmet kan se ut som exemplet nedan:

#include <iostream>

int main () {
  // skriv ut vårt meddelande
  cout << "Hello world!" << endl;
}

Vi går rad för rad igenom programmet ovan och tittar på det.

På rad 1 görs en include-deklaration (se Kapitel 11 för mera information), som betyder att vi skall använda definitioner i vårt program som finns i filen iostream. Denna fil innehåller grundläggande input/output-funktionalitet (se Kapitel 8). Dylika rader börjar med tecknet #, och filnamnet skrivs innanför <> eller "".

Rad 2 är tom. Man kan ha tomma rader i C++-program för att göra dem mera lättläsliga. Det rekommenderas att man gör läsliga program.

Rad 3 definierar en funktion som heter main. Den tomma parentesen indikerar att funktionen inte behöver några parametrar (se Kapitel 7). Först på raden finns int, som betyder att funktionen returnerar ett värde av typen int, som är ett positivt eller negativt heltal (se Kapitel 2). Sist på raden finns en { som definierar ett kodblock (se avsnittet Kodblock). Funktionen main är alltså ett kodblock som fortsätter ända tills det slutar vid en matchande } på rad 6.

Rad 4 är en kommentar. En kommentar ignoreras av kompilatorn och finns endast till för att människor skall läsa dem. Se avsnittet Kommentarer.

Rad 5 sedan gör det egentliga grovjobbet i vårt program. Det skickar strängen Hello world! till standard utenhet (cout), som i vanliga fall är skärmen. Man använder << för att "styra" texten till cout. Efter vårt meddelande skickas ännu ett endl, som betyder radbyte. Se Kapitel 8.

Sista raden i programmet avslutar kodblocket som hör till main.

Konventioner för namngivning av filer

De flesta språk och filtyper som används i olika sammanhang har en egen extension. Extensionen används vanligen för att berätta både för användaren och olika verktyg vilken typ av fil det är frågan om. För t.ex. Modula-2 används extensionen .mod medan C använder .c. C++ har även egna extensioner. Det finns en del olika extensioner som brukar användas, och man kan i princip använda vilken man själv tycker bäst om. De mest använda är kanske .cpp, .cc, .C och .c++. Den sista vållar ibland problem för diverse verktyg och bör undvikas. De flesta verktyg känner igen dessa extensioner som C++-filer. En annan filtyp som används inom C++ (och även C) är en s.k. definitionsfil, och de har vanligen extensionen .h, .hh, .H eller .h++. Den senaste är inte här heller speciellt bra att använda. Många kompilatorer kräver inte att filerna är namngivna enligt detta sätt, men det underlättar att hålla ordning på filer om de är systematiskt namngivna.

Det som finns före extensionen är helt valfritt. Man borde dock försöka ge filen ett namn som antingen berättar vad det är för program som finns i filen, eller vilken modul av ett större program det är frågan om. Filnamn som Fil1.cpp, Fil2.cpp o.s.v. säger ingenting om själva filen, och gör det enbart svårt att senare veta vad filen innehåller.

Kompilera och köra program

Program skrivna i C++ måste kompileras innan de kan köras. Men kompilering menas att programmet översätts till en form som den använda datorn direkt kan exekvera. Tolkade program däremot måste köras i en tolk som översätter programmet i flykten. Olika kompilatorer kan användas för att kompilera program, men eftersom denna kurs har räkneövningar där vi använder oss av Unix (Linux), så behandlas kompilatorer och verktyg under Unix närmare. De som använder en annan plattform än Unix refereras till dokumentationen som följer med kompilatorn. Alla program i detta kompendium torde dock gå att kompilera med vilken kompilator som helst. Mera information om hur program kompileras finns i Kapitel 13.

Om programmet ovan är sparat i filen Hello.cpp kan man under de flesta versioner av Unix kompilera det med ett kommando i stil med:

% g++ Hello.cpp
%

man får då ett körbart program som heter a.out (precis som med kompilatorn för Modula-2). Detta program kan köras med kommandot ./a.out, och vi får vårt meddelande på skärmen.

% ./a.out
Hello world!
%

Det var ett första program. Inte så svårt, eller hur? C++ är ganska enkelt, egentligen.