Dead_Rabbit Skrevet 19. november 2004 Del Skrevet 19. november 2004 Heisann! Jeg tenkte å bruke noen dager på å komme meg gjennom boka Modern C++ Design, og jeg lurer på en ting anngående policy classes. Jeg skjønner ikke helt hva det er, "definisjonen" på en måte. Jeg googlet litt, men fant ikke annet enn referanser til Modern C++ Design. Noen som kan hjelpe meg? Lenke til kommentar
søppel Skrevet 19. november 2004 Del Skrevet 19. november 2004 Kan tenke deg poliformi, du slepper bare litt billigere unna; ingen virtuelle funksjoner. #include <iostream> using namespace std; // A policy, or a way to do something. class SomeWay { public: void doIt() { cout << "SomeWay::doIt()" << endl; } // doIt }; // SomeWay // Another policy, or another way to do the same thing. class AnotherWay { public: void doIt() { cout << "AnotherWay::doIt()" << endl; } // doIt }; // AnotherWay template<class HOW> class DoStuff : public HOW { }; // DoStuff template<typename C> void action(C& c) { c.doIt(); } // action int main() { DoStuff<SomeWay> a; action(a); DoStuff<AnotherWay> b; action(b); return(0); } // main Lenke til kommentar
Dead_Rabbit Skrevet 19. november 2004 Forfatter Del Skrevet 19. november 2004 (endret) Tror jeg skjønner litt... Er det på en måte slik at templates og arv "binder" alt sammen? Kansje litt dårlig formulert, men jeg tror jeg skjønner. Tusen takk for hjelpa! Edit: Kan tenke deg poliformi, du slepper bare litt billigere unna; ingen virtuelle funksjoner. Slepper biligere unna? Hva er det som er "galt" med poliformi? Skjønner det bedre og bedre etterhvert som jeg kikker mer på koden. Endret 19. november 2004 av zirener Lenke til kommentar
iobas Skrevet 20. november 2004 Del Skrevet 20. november 2004 (endret) hvis du skulle bruke polyformi for å få den samme effekten hadde du istedetfor et template-argument tatt en basepointer og hatt en virtuell funksjon som het doit() som man implementerer i de arvede klassene. hvilken funksjon som blir kalt skjer i runtime, og er derfor tregere enn template eksempelet som skjer i compile-time Endret 20. november 2004 av iobas Lenke til kommentar
Dead_Rabbit Skrevet 20. november 2004 Forfatter Del Skrevet 20. november 2004 Nå skjønner jeg det! Takk for hjelp(begge to)! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå