110

110



public:

virtual void Drukujlnt(void) = 0;

};

dass Pochodna : public Interfejsl, public Interfejs2

{

private:

int m_i; float m_f1; float m_f2; public:

PochodnaO : m_i(0), m_f1(0.0f), m_f2(0.555f)

{

}

void Drukujlnt(void)

{

printf("%d ", m_i);

}

};

void TestABC(void)

{

Pochodna d;

Interfejsl *pif1 = &d;

Interfejs2 *pif2 = &d; d.Drukujlnt(); pif1 ->Drukujlnt(); pif2->Drukujlnt();

}

Klasa Pochodna dziedziczy po dwóch klasach podstawowych. Obie te klasy podstawowe definiują metodę Drukujlnt. Można zatem pomyśleć, że instrukcja d.DrukujInt() jest niejednoznaczna. W rzeczywistości jednak nie ma tu niejednoznaczności, ponieważ metody Drukujlnt w klasie Interfejsl i w klasie Interfejs2 są czystymi metodami wirtualnymi.

Przyjrzyjmy się, jak wygląda kod wygenerowany przez kompilator. Zaczniemy od metody Drukujlnt w klasie Pochodna:

44:

void Drukujlnt(void)

45:

{

00401550

push

ebp

00401551

mov

ebp.esp

00401553

push

ecx

00401554

mov

dword ptr [ebp-4],ecx

46:

printf("%d ", m_i);

00401557

mov

eax,dword ptr [this]

0040155A

mov

ecx,dword ptr [eax+8]


Wyszukiwarka

Podobne podstrony:
Koncepcja obiektowości class Pojazd { public; virtual void jedz() { cout << "Jadę" &
3 (366) 6 class B { public: virtual void f() {.......}}; class D : public B{ public: void f() {.....
private: int m_xLewy; int m_yGóra; int m_xPrawy; int m_yDół; protected: virtual void

Pochodnal (){ cout « "konstruktor Pochodnal


Program w Javie dass HelloWorldApp { public static void main(String[] args) {
—    Następnie należy utworzyć metodę inicjalizującą applet: public void initO
Najprostsza aplikacja public class Hello{ public static void main(String[ ]
OpenGL/src/org/umk/opengl/RendererGL.jaya public void onSurfaceCreated(GL10 gl, EGLConfig konfig) {
OpenGL/src/org/umk/opengl/RendererGL.jaya public void onSurfaceChanged(GL10 gl, int szerokość, int
dr inż. Piotr Matka PROGRAMOWANIE JAVA 11 public void destroy()ii Szkielet apletu korzystający z kla
dr inż. Piotr Matka PROGRAMOWANIE JAVA 13 class MyWindowAdapter extends WindowAdapteri public void

więcej podobnych podstron