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

Wskaźnik na składowe klasy

Ostatnio zmodyfikowano 2010-10-18 17:56
Autor Wiadomość
kamillo121
Temat założony przez niniejszego użytkownika
Wskaźnik na składowe klasy
» 2010-10-16 16:23:28
Zakładam ten temat bo wiem, że osoby z większym doświadczeniem mogą udzielić parę rad, sugestii ;)
Otóż potrzebuje wskaźników na składowe klas(metody jak i pola) dlatego zacząłem męczyć moje środowisko i wyszło mi coś takiego:


C/C++
#include <iostream>

struct Foo
{
    char * str;
    Foo( char * st )
    {
        str = st;
    }
   
    void func( short a )
    {
        std::cout << str << " |  " << a << std::endl;
    }
};

typedef char * Foo::* WSK;

int main()
{
    Foo * A = new Foo( "SIEMKA" );
   
    WSK fun =& Foo::str;
   
    ( A->* fun ) = "siemkaAASD";
   
   
    A->func( 20 );
   
    delete A;
   
    return 0;
}

To jest mój sposób na zmienianie wartości pola klasy przez wskaźnik doń, a teraz metody

C/C++
#include <iostream>

struct Foo
{
    char * str;
    Foo( char * st )
    {
        str = st;
    }
   
    void func( short a )
    {
        std::cout << str << " |  " << a << std::endl;
    }
};


typedef void( Foo::* WSK )( short a );

int main()
{
    Foo * A = new Foo( "SIEMKA" );
   
    WSK fun =& Foo::func;
   
    ( A->* fun )( 23 );
   
   
   
    delete A;
    return 0;
}

No i niby wszystko działa(w razie jakby ktoś tego nie wiedział to ot ma przedstawiony pewien sposób) ale jednak nie jestem do końca ufny i wolę dopytać, czy ktoś zna może lepszy sposób na tego typu działania ?


//Na dodatek mój typ  WSK waży dwa razy więcej niż wskaźnik na klasę (wsk na foo 4 bajty, wsk na składowe 8 bajtów)
P-22864
TomC
» 2010-10-18 12:57:18
Kompilator nie pozwoli na ustawienie wskaźnika "WSK" do zmiennych i metod prywatnych klasy.
Dlatego wydaje mi się też powyższa metoda nie dodaje niczego nowego czego nie można byłoby uzyskać za pomocą
zwykłego odwołania do obiektów klasy (np. A->str czy A->func(2) ).

Do czego jest to Ci potrzebne?
P-22958
kamillo121
Temat założony przez niniejszego użytkownika
» 2010-10-18 15:34:03
Do czego mi to potrzebne ?
1. Chce poznać dokładnie ten temat
2. Myślałem, żeby zrobić próbkę takiego świata wirtualnego głównie opartego na takich jakby zdarzeniach, coś jak Masz np w GUI,okienka mają też prócz ustawiania rodzaju kontrolek jeszcze wskaźnik na funkcję obsługującą "coś tam" lub wywoływaną "kiedyś tam". Co prawda wiem, że można to zrobić na zwykłych wskaźnikach na klasę ale nie zaszkodzi się trochę "pobawić" :)

//Tym bardziej, że przy wskaźnikach mam późniejszą możliwość "podczepienia" różnych funkcji i metod jeżeli będzie pochodzić z klasy ;)
P-22962
pekfos
» 2010-10-18 16:31:26
//Na dodatek mój typ  WSK waży dwa razy więcej niż wskaźnik na klasę (wsk na foo 4bity, wsk na składowe 8 bitów)
chyba bajtów..
P-22965
SeaMonster131
» 2010-10-18 17:27:00
Po prostu @kamillo121 za dużo muzyki słucha hehe :P
P-22967
kamillo121
Temat założony przez niniejszego użytkownika
» 2010-10-18 17:56:15
Hehehe nie no moja pomyłka  ;)
P-22971
« 1 »
  Strona 1 z 1