09. november 2008 - 22:57Der er
8 kommentarer og 1 løsning
Basalt static kontra extern kontra global spørgsmål
Er der nogen der kan forklare hvad forskellen er mellem x1, x2 og x3? Jeg er udmærket klar over, hvorfor man kan have interesse i at erklære medlemsfunktioner, medlemsdata eller lokale variabler for static (eksemplevis singleton), men hvorfor erklære globale funktioner static og hvordan adskiller de sig så fra almindelige globale variabler? Det sidste spørgsmål er angående "extern". Hvornår er det smart at erklære en variable for extern og hvad sker det helt præcis? På forhånd tak for hjælpen.
#include <iostream>
using namespace std;
int x1 = 123; static int x2 = 456; extern int x3 = 789;
x1: variabel som kan bruges i denne fil og refereres andre steder x2: variabel som kun kan bruges i denne fil x3: variabel som kan bruges i denne fil men skal være definereti en anden fil
x2: variabel som kun kan bruges i denne fil? Hvad menes der med fil? For hvis jeg f.eks. har to .cpp filer, så kan jeg tilgå x2 i begge filer, selvom den kun er erklæret ét sted. Det samme gælder x3.
Jeg forsøgte selv at lave et par eksempler for at eksperiementere, men jeg går ud fra, at hvis "Første fil" inkluder "Anden fil", så kan det hele betragtes, som 1 enkelt fil og derfor kan ovenstående eksempel ikke realiseres? :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.