Virtuális öröklés trükkösen (csak fanatikusoknak)

Milyen más programozási nyelvekben (pl: C#, Java) használt nyelvi elemet valósít meg MyClass a Blocker osztály segítségével?


 

class MyClass;

 

class Blocker {

      private:

            Blocker() {

            }

 

            friend class MyClass;

};

 

 

class MyClass: public virtual Blocker {

      // tagfuggvenyek es tagvaltozok...

};

 



A megoldásért kattints ide!
A virtuális ősosztály konstruktorát mindig az öröklési lánc legvégén álló osztály hívja meg közvetlenül. A MyClass osztály a Blocker segítségével tehát megakadályozza, hogy más osztályok belőle származhassanak, mivel a Blocker osztály (egyetlen)privát konstruktorát MyClass egyetlen leszármazottja sem tudná elérni.
Más programozási nyelvekben erre külön kulcsszavak vannak (pl: C#-ban sealed, Java-ban final).



2008.02.08. 18:17:27 |  Permalink  |  Hozzászólások száma: 0  |  Tárgyszavak: Fejtörők


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások