Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

dziedziczenie typów wbudowanych

Ostatnio zmodyfikowano 2017-03-05 10:38
Autor Wiadomość
Nazgul
Temat założony przez niniejszego użytkownika
dziedziczenie typów wbudowanych
» 2017-03-05 00:13:26
Dzień dobry,
Chciałbym mieć klasę, która przykrywa niektóre operatory zmiennej i pozwala na reagowanie w momencie modyfikacji zmiennej.

C/C++
template < class type >
class Tracked
    : public type
{
public:
    Tracked( void( * func )() ) {
        function = func;
    }
    Tracked() {
        function =[]()->void { };
    }
    Tracked < type > operator =( const type & right )
    {
        *(( type * ) this ) = right;
        function();
        return * this;
    }
   
private:
    void( * function )();
};

Jednak mogę tutaj wstawiać w szablon tylko klasy stworzone przeze mnie, a chciałbym jeszcze wstawiać np. int, float itd. Jest taka opcja?

P-158537
michal11
» 2017-03-05 01:23:03
Nie, nie można dziedziczyć z typów podstawowych, zresztą one nie mają żadnych metod wiec twoja klasa dla dziedziczenia z np. inta nie miała by sensu.
P-158542
Nazgul
Temat założony przez niniejszego użytkownika
» 2017-03-05 10:27:33
Słabo.. no nic, to trzeba będzie to zrobić trochę brzydziej;P Dzięki za info;)
P-158582
mokrowski
» 2017-03-05 10:38:54
Możesz to zrobić funkcjami operatorów. Tylko.. powinno pojawić się pytanie czy naprawdę]/b] jest Ci to potrzebne? Nie lepiej hermetyzować dostęp do atrybutu w klasie i zrobić to w sposób naturalny?
P-158583
« 1 »
  Strona 1 z 1