Avatar billede conrad Nybegynder
13. oktober 2003 - 12:56 Der er 7 kommentarer og
1 løsning

implementering af abstract klasse

Jeg skal skifte mellem flere beregnings algoritmer og vil derfor benytte et strategy pattern. Jeg har en klasse Alg
som jeg vil lade være abstract og 2 klasser AlgX og AlgY som skal nedarve og implementere den eneste function calc(); Fra en anden klasse Control skal jeg benytte Alg.

1) Hvis jeg definerer en .h fil for Alg skal jeg så også have en .cpp og i så fald hvad skal der stå i den?

2) Kan jeg nøjes med at include Alg.h i AlgY.cpp og AlgX.cpp, eller skal jeg have en AlgX.h og AlgY.h som includer Alg.h

3) For at bruge Alg i Control hvad skal jeg saa inkludere
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:03 #1
Det er fuldstændigt valgtfrit !
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:04 #2
Jeg ville lave:
  alg.h med definitioner af alle 3 klasser
  alg.cpp med implementation for alle 3 klasser (Alg har muligvis let ikke noget)
  inkludere alg.h hvor jeg skulle bruge det
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:07 #3
Men du kan også have en .h og .cpp per klasse.

I så fald ville jeg lade algx.h og algy.h inkludere alg.h !

algx.cpp skulle naturligvis inkludere algx.h og bruger skulle
muligvis inkludere alle 3 .h filer.
Avatar billede conrad Nybegynder
13. oktober 2003 - 13:12 #4
jeg pr'ver lige, og venter lidt med at lukke
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:19 #5
Jeg vil så ligge et svar i forventning om at det virker.
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:19 #6
svar
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:21 #7
C++ bygger på en lidt anden filosofi end Java.

Java har regler for at public classes skal være en fil med
class name.

I C++ kan man putte sine klasser hvor man har lyst til.

I Java skal package og directory struktur matche.

I C++ kan du lave dine namespaces præcis som du har lyst til.
Avatar billede conrad Nybegynder
13. oktober 2003 - 14:27 #8
13.19.20 : den var god, ja selvfølgelig virker det :)
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