Skocz do zawartości

Jak zrobić wskaznik globalny na wywołanie metody z klasy?


Pomocna odpowiedź

(edytowany)

Mam jeszcze taki pomysł, że zrobie to jako funkcje nie wirtualne i zrobie wskaznik na funkcje wywołując w dowolnym miejscu w kodzie daną funkcje posługując się wskaźnikiem, a reszte ciała zostawie w funkcjach wirtualnych to co ma być przysłaniane podczas wywołania danej klasy.

Edytowano przez nebraska

W ogólnym przypadku może nie być niczym złym. Ale to co pisałeś wcześniej to bardzo brzydka próba obchodzenia zasad programowania obiektowego. Ciężko powiedzieć więcej nie wiedząc co dokładnie chcesz zrobić. Nie możesz tak dawkować informacji jeśli chcesz uzyskać sensowną pomoc.

 

@nebraska
Po pierwsze, nie zainicjowałeś wskaźnika. 
Po drugie nie istnieje coś takiego jak wskaźnik klasy, to skrót myślowy dla "wskaźnik instancji klasy" (obiektu).
Po trzecie, nie stosujesz wskaźnika na funkcję, a próbujesz wywołać funkcję wskazanej instancji danej klasy, i to przed utworzeniem tej instancji (nigdzie nie ma wywołania konstruktora klasy) nie funkcję statyczną klasy.
Po czwarte, wygląda to na program pisany na Arduino, lub coś podobnego, a takie mnożenie klas jest mocno podejrzane. 
Przykład który podałeś wymaga dokładnie jednej klasy i ani jednej funkcji wirtualnej.

2 godziny temu, etet100 napisał:

W ogólnym przypadku może nie być niczym złym. Ale to co pisałeś wcześniej to bardzo brzydka próba obchodzenia zasad programowania obiektowego. Ciężko powiedzieć więcej nie wiedząc co dokładnie chcesz zrobić. Nie możesz tak dawkować informacji jeśli chcesz uzyskać sensowną pomoc.

 

Cały czas w wolnych chwilach przerabiam sobie kurs OOP. Doczytałem o tym i finalnie rozwiązałem problem wskaznikiem polimorficznym wywołując po warunku i działa jak należy.

  if (przekaznik_1.wylaczanie == 1) {
    //printf("OFF 1 \n");
    r1 = &przekaznik_1;
    r1->Off();
    r1_ostatni = &przekaznik_1_ostatni;
    r1_ostatni->Off();
  }

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...