Pitanje

Prerađivanjem metode iz bazne klase u proširenoj klasi želimo nasljediti sučelje metode i promijeniti implementaciju.

class Window{
public:
    void resize(int x, int y) {
    std::cout << "Window::resize"  << std::endl;
    // ....
}
// .....
};

class SimpleDialog : public Window{
public:
    void resize(int x, int y) {
    Window::resize(x,y);   // Neka bazna klasa napravi svoj dio posla ...
    std::cout << "SimpleDialog::resize"  << std::endl;
    // ....
}
// .....
};

Funkcija update() je klijent klase Window. Kako uzima referencu na Window može raditi sa svakom klasom koja je izvedena iz klase Window.

void update(Window& obj)
{
    // ...
    int x=80, y=170;
    //
    obj.resize(x,y);
    // ...
}

Koja će metoda resize() biti pozvana kada update() dobije SimpleDialog objekt?

SimpleDialog dialog;
update(dialog);
slide 2/22
* help? contents? Copyright © Mladen Jurak