C++

CRTP (curiously recurring template pattern)

Në shqip përdoret i njëjti emër.

ShpjegimiSQ

Te CRTP, një klasë trashëgon nga një template që merr vetë klasën si parametër: class Rreth : public Forme<Rreth>. Jep polimorfizëm pa vtable — i shpejtë, por më i vështirë për t'u lexuar.

EnglishEN

In CRTP, a class inherits from a template taking the class itself as a parameter: class Circle : public Shape<Circle>. It gives polymorphism without a vtable — fast, but harder to read.

Si ta mendosh

Si një pasqyrë që e njeh fytyrën tënde para se të shikosh.

Lexoje në anglisht

Like a mirror that knows your face before you look.

Shembull kodicpp

template <class D> struct Forme {
    double siperfaqja() { return static_cast<D*>(this)->llogarit(); }
};
struct Katror : Forme<Katror> { double llogarit() { return 4; } };

Terma të lidhur