Avatar billede Lasse Novice
20. december 2002 - 17:49 Der er 3 kommentarer og
1 løsning

common practice

Dette er mere en diskution end et spoergsmaal.

Jeg er en newbie indenfor c++. Jeg programmerer i andre sprog, men har nu besluttet at tage skridtet.

Lige nu sidder jeg med lidt DirectX, hvilket er meget grineren. En ting som jeg har taenkt over er:

Lad os sige at jeg har 2 klasser(klasse1 og klasse2). klasse1 opretter 15 instanser (via new operatoren) af klasse2 og har disse som membervariabler.

Nu er det saadanne at 2 af klasse2's member funktioner skal bruge en instans af et oprettet COM object der ligger i klasse1. Hvad er common practice i dette tilfaelde? Opretter man i klasse2 en member variable der kan indeholde dette COM object(og overfoerer det ved et kald), eller giver man COM objectet som argument hver gang man kalder en af de 2 funktioner?

Dette er kun et lille eksempel, men det kunne jo sagtens eskalere til 10 funktioner....

Hvad er common practice?
Avatar billede arne_v Ekspert
20. december 2002 - 18:30 #1
Hvis alle kald af metoder for en instans af klasse2 definitorisk
skal bruge samme COM objekt, så bør du sende en pointer til det med over
i constructor kaldet af klasse2 så de kan gemme en pointer til det, som
metodere kan bruge.

Det vil efter minmening være "best practice".
Hvis det kan være forskellige COM objekter, så skal de naturligvis
med som argument i metode kaldene.
Avatar billede Lasse Novice
20. december 2002 - 18:37 #2
ogsaa selvom det kun er 2 funktioner der skal bruger objektet ud af f.eks. 20?
Avatar billede arne_v Ekspert
20. december 2002 - 19:08 #3
Ja. Principielt. Ikke mindst fordi som du selv siger, så kunne
det blive flere med tiden.

Det afgørende er om der et en sammenhæng mellem instanser af
klasse 2 og det COM objekt.

Det er den sammenhæng som gør, at det giver mening at gemme
den pointer i constructoren.

Og det er den sammenhæng som gør at man kan forvente flere
metoder i fremtiden som vil bruge det COM objekt.
Avatar billede Lasse Novice
20. december 2002 - 19:38 #4
ja, det lyder fornuftigt.
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