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

Jak uzyskać dostęp z klasy do składników innej klasy ??

Ostatnio zmodyfikowano 2013-07-02 21:36
Autor Wiadomość
akwes
» 2013-07-02 15:46:33
Nie ma sensu pracować na klasach bez ich zrozumienia. Poczytaj o klasach od podstaw » Kurs C++Klasy (obiekty) lekcja
P-86810
domin568
Temat założony przez niniejszego użytkownika
» 2013-07-02 21:05:15
Przeczytałem oraz zanalizowałem , lecz nie ma tam mowy o dziedziczeniu , naprawde nie wiem co począć ;/ . Mam również książke Symfonia c++ , ale tam jest wszystko opisane raczej nie praktycznie , i nie znalazłem nic dotyczącego mojego przypadku :(

Chodzi o to ze mam np. taką metode :

C/C++
class postac
{
public: int atakuj( int sila, int szansa_na_kryta )
    {
        srand( time( NULL ) );
        cout << "Twoja sila" << sila << endl;
        szybkosc_ataku = odswiez_szybkosc_ataku( zrecznosc, szybkosc_ataku, przelicznik_zr_do_szybkosci );
        int MIN_OBR = sila * 20;
        int MAX_OBR = sila * 40;
       
        int losuj_kryt;
       
        losuj_kryt = rand() % 100;
       
       
       
        obrazenia =( rand() %( MAX_OBR - MIN_OBR ) ) + MIN_OBR;
        obrazenia = obrazenia * szybkosc_ataku;
        if( losuj_kryt <= szansa_na_kryta )
        {
            obrazenia = obrazenia * 2;
            cout << "Trafiles kryta !!" << endl;
        }
        cout << "Twoje obrazenia " << obrazenia << endl;
       
        return obrazenia;
       
    }
protected:
    int sila;
    int szansa_na_kryta;
    double szybkosc_ataku;
   
};

Oraz kiedy wywołam ją z jakiejś innej klasy  np. z klasy przeciwnik to sila jest rowna - 1 to znaczy :

C/C++
class przeciwnik
{
    postac bohater1;
    int obrazenia_bohatera = bohater1.atakuj( sila, szansa_na_kryta );
    cout << obrazenia_bohatera; // -1
}
Nawet sila w metodzie atakuj jest równa -1 jeżeli wywołam ją z innej klasy . Możecie mi to wytłumaczyć ?  Był bym BARDZO wdzięczny :)
P-86828
kubawal
» 2013-07-02 21:19:56
» Programowanie obiektowe, C++Podstawy dział kursu,
a później przeczytaj
» Programowanie obiektowe, C++Polimorfizm dział kursu
Trochę tego dużo, ale powodzenia!
P-86833
Geniusz
» 2013-07-02 21:24:17
Też mam Symfonie C++ i wszystko jest tam bardzo dokładnie wytłumaczone (rozdział o dziedziczeniu też) i jest na prawdę wiele przykładów . Proponuje wrócić do rozdziału o klasach zanim się zaczniesz zabierać za dziedziczenie, bo to by było bez sensu.

I jak możesz powiedzieć, że wszystko jest opisane nie praktycznie, skoro po twoim kodzie widać, że ty tą książkę co najwyżej przejrzałeś bez głębszego zastanowienia się nad jej treścią ?
P-86834
Geniusz
» 2013-07-02 21:33:56
C/C++
class przeciwnik
{
    postac bohater1;
    int obrazenia_bohatera = bohater1.atakuj( sila, szansa_na_kryta );
    cout << obrazenia_bohatera; // -1
}

Nie możesz napisać takiego czegoś wewnątrz klasy.
W klasie się nie umieszcza instrukcji kodu, tylko jej składniki np funkcje, zmienne, obiekty innych klas itd.
Jeśli chcesz nadać obiektowi początkową wartość użyj konstruktora, chociaż wątpię byś miał o nim jakiekolwiek pojęcie.
P-86839
akwes
» 2013-07-02 21:36:25
Ile razy mam Ci powtarzać? Nie rozumiesz co to jest klasa. To nie jest klasa. Widziałeś gdzieś w Symfonii C++ analogiczną klasę?
C/C++
class przeciwnik
{
    postac bohater1;
    int obrazenia_bohatera = bohater1.atakuj( sila, szansa_na_kryta );
    cout << obrazenia_bohatera; // -1
}

Naprawdę, najlepiej zacznij tę książkę czytać od nowa. Jeszcze raz. Dokładnie.
P-86841
1 « 2 »
Poprzednia strona Strona 2 z 2