eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaARM7 - nie działa wołanie metod wirtualnych. › Re: ARM7 - nie działa wołanie metod wirtualnych.
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!new
    s.nask.org.pl!news.onet.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!new
    s.neostrada.pl!not-for-mail
    From: Sebastian Bialy <h...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: ARM7 - nie działa wołanie metod wirtualnych.
    Date: Sun, 08 Feb 2009 21:00:15 +0100
    Organization: TP - http://www.tp.pl/
    Lines: 33
    Message-ID: <gmne4v$qif$1@nemesis.news.neostrada.pl>
    References: <gmmq97$gsi$1@atlantis.news.neostrada.pl>
    <498f3853$0$29423$f69f905@mamut2.aster.pl>
    NNTP-Posting-Host: uj194.internetdsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: nemesis.news.neostrada.pl 1234123744 27215 80.55.139.194 (8 Feb 2009
    20:09:04 GMT)
    X-Complaints-To: u...@n...neostrada.pl
    NNTP-Posting-Date: Sun, 8 Feb 2009 20:09:04 +0000 (UTC)
    User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
    X-Accept-Language: en-us, en
    In-Reply-To: <498f3853$0$29423$f69f905@mamut2.aster.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:556317
    [ ukryj nagłówki ]

    Krzysztof Rudnik wrote:
    > A te zmienne sa statyczne czy automatyczne?

    Automatyczne, na stacku.

    > Masz obiekt kompletny, wiec wywolanie x.run() realizowane jest bezposrednio
    >, bez 'wirtualnosci'.

    Wiem, dlatego własnie podałem przykład z ominięciem tablicy wirtualnej
    żeby wykazać ze w niej jest problem.

    > Wywolanie jest wirtualne (poprzez tablice)
    > gdy wywolujesz metode ze wskaznika lub referencji. Wewnatrz start() masz wskaznik
    this.

    Tak, w dodatku funkcja start() prawidłowo dochodzi do miejsca
    w którym pobierany jest wskaźnik na run. Niestety jest on zerowy co
    może oznaczać, że nie został zainicjowany. Nie wiem gdzie (i kto) jest
    odpowiedzialny za prowidłwoe wypełnienie tej vtable. Wydawało mi się że
    konstruktor, ale jak widać chyba nie.

    > Jesli to sa zmienne statyczne to podejrzewalbym linkowanie i inicjalizacje.

    Nie. To zmienne na stosie. Dokładnie tak jak widać w kodzie.

    > Kazdy plik .cpp zawiera wygenerowana przez kompilator funkcje inicjalizujaca
    obiekty globalne (wolajaca konstruktory).

    Wiem, mój startup zawiera kod który wywołuje te konstruktory (fakt - nie
    pisany przez mnie). Jednak w tym wypadku nie ma mowy o statycznych
    zmiennych. Ponadto sprawdziłem - obiekt statyczny ma wołany konstruktor
    wiec tutaj chyba nie ma problemu.

    Będę jeszcze próbował gcc w jakiejś nowszej wersji z lini 4.x. Być może
    to bug.

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: