Odwolanie się do metody klasy

0

Witam,
w projekcie mam dwie klasy

class Ekran
{
    public:
        Ekran();                                           
        ~Ekran();                            
        ......
        void zamaluj (int i, int j);
        BITMAP* bufor; 
}

oraz 


class Gra
{
    public:
        Gra(int nowy_wiersze, int nowy_kolumny);
        ~Gra();
         ....
        void graj (int tryb);
}       

W metodzie graj(tryb) klasy Gra chcę się odwołać do metody zamaluj(i,j) klasy Ekran.
Robię to tak:
Ekran.zamaluj(i,j);
ale projekt nie chce się skompilować. Co jest źle ?

0

A ty chcesz operować na typie czy na obiekcie? Raczek na obiekcie, więc najpierw musisz mieć ten obiekt typu Ekran.

0

Ekran jest KLASĄ. Musiałbyś mieć OBIEKT klasy Ekran żeby to zrobić. Albo ekran zrobić jakimś singletonem.

0

@Marek

chcę zbudować metodę która będzie wyglądała tak:

void Gra::graj(int tryb)
    {
   ...
  Ekran.zamaluj(i,j);

  }

 
0

Wiem o co ci chodzi, ale żeby tak zrobić musisz mieć zadeklarowany obiekt klasy Ekran o takiej nazwie (no nie da się). Stwórz sobie Ekran ekran1; i wtedy możesz ekran1.zamaluj(i, j); w klasie Gra.

0

na rzecz czego chcesz wywołać tą metodę "zamaluj"? Tak jak koledzy pisali, potrzebujesz obiektu klasy Ekran. Jeśli chcesz "zamaluj" wywoływać przez zasięg możesz tą metodę uczynić statyczną (jednak wtedy nie może ona działać na elementach niestatycznych twojej klasy) i wywoływać ją tak: Ekran::zamaluj(int, int);

0

Raczej nie chodzi mu o statyczne metody i wątpie, aby w tym przypadku miało to być skuteczne. Pka - Albo jesteś początkującym, albo za dużo kodzisz skoro chcesz tak zrobić :) Odpocznij sobie trochę, z początku też tak miałem i robiłem dziwne rzeczy o którym sie programistom nie śniło ;D Jeżeli dalej masz problem opis dokładniej o co ci chodzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1