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

Wywolanie obu metod z klasy bazowej i dziedziczonej

Ostatnio zmodyfikowano 2015-01-15 16:45
Autor Wiadomość
Nowicjusz
Temat założony przez niniejszego użytkownika
Wywolanie obu metod z klasy bazowej i dziedziczonej
» 2015-01-14 20:20:42
Czy jest jakiś sposób na to aby wywołać jednocześnie metodę z klasy bazowej i dziedziczonej ? Oczywiście bez wrzucania na siłę do metody obiektu którejś klasy.
P-124940
killermannnnn
» 2015-01-14 20:29:47
Jeśli dobrze zrozumiałem to chcesz wywołać metodę z klasy podstawowej w metodzie klasy pochodnej ?
P-124942
Nowicjusz
Temat założony przez niniejszego użytkownika
» 2015-01-14 20:35:21
Chce zrobić coś na takiej zasadzie:

C/C++
class B;

class A
    : public B
{
public:
    void funkcja() { cout << "Klasa A"; }
};


class B
{
public:
    void funkcja() { cout << "Klasa B"; }
   
};


int main()
{
    B * b = new A;
   
    b->funkcja(); //I tutaj chcialbym zeby wykonala sie meteoda funkcja() z klasy A i B
}
P-124943
killermannnnn
» 2015-01-14 20:50:08
Da sie w druga stronę robiąc coś takiego (jesli o to ci chodziło):
C/C++
class A
    : public B
{
public:
    void funkcja() { cout << "Klasa A"; B::funkcja(); }
};

Ale wywołanie funkcji klasy pochodnej z klasy dziedzicznej chyba nie jest możliwe (bez wstawiania tam obiektu).
P-124945
michal11
» 2015-01-15 02:25:58
To jest raczej niemożliwe, skąd klasa B ma widzieć kogo dziedziczy ?

Btw. do czego jest ci to potrzebne ?


Dobra, źle zrozumiałem, wystarczy, że skorzystasz z polimorfizmu
C/C++
class B;

class A
    : public B
{
public:
    void funkcja() { B::funkcja(); cout << "Klasa A"; }
};


class B
{
public:
    virtual void funkcja() { cout << "Klasa B"; }
   
};


int main()
{
    B * b = new A;
   
    b->funkcja(); //I tutaj chcialbym zeby wykonala sie meteoda funkcja() z klasy A i B
}
P-124961
darko202
» 2015-01-15 07:56:51
:: operator zasięgu

C/C++
#include <iostream>
using namespace std;

class B
{
public:
    void funkcja() { cout << "Klasa B \n"; }
};

class A
    : public B
{
public:
    void funkcja() { cout << "Klasa A \n"; }
};

int main()
{
    A a;
    a.funkcja(); // z klasy A
    a.B::funkcja(); // B
   
    A * ptra = & a;
    ptra->funkcja(); // z klasy A
    ptra->B::funkcja(); // B
}
P-124962
Nowicjusz
Temat założony przez niniejszego użytkownika
» 2015-01-15 16:43:58
Wykonywanie sie jednoczesnie dwóch metod potrzebne mi bylo przy pewnym zdarzeniu ktorego metoda zostala zdefiniowana w klasie pochodnej i ma zostac niezmienna. Natomiast klas bazowych jest wiele ktore rowniez w sobie zawieraja ta metode tylko w zaleznosci od klasy jest ona inaczej zdefiniowana. A zatem chcialem aby przy wykonaniu sie tego zdarzenia uruchomila sie metoda z klasy pochodnej i odpowiedniej bazowej.


Dobra sprobuje zrobic tak jak zasugerowaliscie skoro inaczej sie nie da.
P-124977
michal11
» 2015-01-15 16:45:43
Edytowałem swój poprzedni post, chyba o to ci chodziło.
P-124978
« 1 »
  Strona 1 z 1