Avatar billede conrad Nybegynder
23. november 2003 - 13:34 Der er 8 kommentarer og
1 løsning

brug af header fil til at holde konstanter

Jeg benytter en .h fil til at holde nogle konstanter som bliver benyttet af forskellige filer.

Mine spørgsmål er som følger
1) Er dette ikke en standard c/c++ metode?

2) Hvis det er, bryder det så ikke lidt ikke-OO stil?

3) Hvordan vil en evt UML notation for en header fil se ud? Den skal jo så associeres til alle klasser hvor den benyttes? Eller er det for implementerings specifikt til at medtage i sin UML?

Håber på lidt input :)
Avatar billede arne_v Ekspert
23. november 2003 - 13:41 #1
re 1)  Jo. #define i C og const i C++.

re 2)  Jo - i OO ville man erklære dem inden i en klasse, men C++
      er mere end OO.

re 3)  Det vil jeg betragte som ren implementering.
Avatar billede arne_v Ekspert
23. november 2003 - 13:49 #2
#include <iostream>

using namespace std;

#define c1 123

const int c2 = 123;

class C
{
  public:
      static const int c3 = 123;
};

int main()
{
  cout << c1 << " " << c2 << " " << C::c3 << endl;
  return 0;
}
Avatar billede arne_v Ekspert
23. november 2003 - 13:50 #3
Ovenstående illusterer mulighederne.
Avatar billede conrad Nybegynder
23. november 2003 - 13:59 #4
jamen når det kommer fra dig Arne, har jeg ingen problemer med at godtage det, så du kan godt lægge et svar, og tak.
Avatar billede arne_v Ekspert
23. november 2003 - 14:01 #5
svar
Avatar billede arne_v Ekspert
23. november 2003 - 14:02 #6
Jeg ville undgå #define i C++. const  og class memmber static const
ville jeg vælge lidt efter hvad der var mest naturligt.
Avatar billede conrad Nybegynder
23. november 2003 - 14:16 #7
kan du som lidt bonus info fortælle mig hvorfor ændringer i .h filen først træder igennem når jeg ændrer en cpp fil? Og selvfølgelig hvad jeg skal gøre for at de træder igennem med det samme ? (jeg kan evt åbne et nyt spørgsmål)
Avatar billede arne_v Ekspert
23. november 2003 - 14:18 #8
Ændringer i en .h fil træder i kraft når der bliver buildet.

(og alle .cpp filer der includer dem bør recompiles)
Avatar billede arne_v Ekspert
23. november 2003 - 14:19 #9
Hvis du bruger make, så husk at få angivet .h filen i makefile !
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester