eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingadres metody w vtableadres metody w vtable
  • Data: 2009-12-21 09:49:25
    Temat: adres metody w vtable
    Od: Krzysztof Poc <f...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Witajcie

    Czy ktos moze wie dlaczego ponizszy program nieprawidlowo pokazuje
    adres metody
    Inc() pobranej z vtable.

    Bardzo dziekuje za pomoc.



    #include <iostream>

    using namespace std;

    class Human
    {
    public:
    virtual void Set ( void )
    {
    }

    virtual void Inc ( void )
    {
    uintptr_t *t = reinterpret_cast <uintptr_t*> (this);
    uintptr_t *vptr = reinterpret_cast <uintptr_t*> (*t);
    uintptr_t *set = reinterpret_cast <uintptr_t*> (*vptr);
    uintptr_t *inc = reinterpret_cast <uintptr_t*> (*(vptr+4));

    cout << hex << t << endl;
    cout << hex << vptr << endl;
    cout << hex << set << endl;
    cout << hex << inc << endl; // !!! ZLY ADRES !!! :(
    }
    };

    void Action ( Human &human )
    {
    human . Set ();
    human . Inc ();
    }

    int main ( void )
    {
    Human human;
    Action ( human );
    return 0;
    }

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: