eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingadres metody w vtableadres metody w vtable
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!ne
    ws.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews
    .com!nntp.giganews.com!postnews.google.com!j4g2000yqe.googlegroups.com!not-for-
    mail
    From: Krzysztof Poc <f...@w...pl>
    Newsgroups: pl.comp.programming
    Subject: adres metody w vtable
    Date: Mon, 21 Dec 2009 01:49:25 -0800 (PST)
    Organization: http://groups.google.com
    Lines: 47
    Message-ID: <b...@j...googlegroups.com>
    NNTP-Posting-Host: 157.25.157.165
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-1
    X-Trace: posting.google.com 1261388965 11079 127.0.0.1 (21 Dec 2009 09:49:25 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Mon, 21 Dec 2009 09:49:25 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: j4g2000yqe.googlegroups.com; posting-host=157.25.157.165;
    posting-account=KCrgugoAAACdxvyGt0BwAqTMq42-CHoc
    User-Agent: G2/1.0
    X-HTTP-Via: 1.1 cns-gdn.emea.cpwr.corp:8001 (squid/2.5.STABLE6), 1.0
    cns-gdn-ext.emea.cpwr.corp:3128 (squid/2.5.STABLE6)
    X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.14)
    Gecko/2009102119 Gentoo Firefox/3.0.14,gzip(gfe),gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.comp.programming:184316
    [ ukryj 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: