Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamic Binding in C++

Why does the derived class have to declare its methods as virtual for dynamic binding to work even though the methods of the base class are declared virtual?

like image 316
user224579 Avatar asked Aug 14 '26 04:08

user224579


2 Answers

It doesn't have to. If a method is declared virtual in a base class, overriding it in a derived class makes the overriding function virtual as well, even if the virtual keyword is not used.

like image 149
laalto Avatar answered Aug 15 '26 18:08

laalto


It doesn't.

class Base
{
    virtual void foo() {}
};

class Derived : public Base
{
    void foo() {}
}

in this code foo() is still virtual in the Derived class even though it isn't declared as such.

like image 45
shoosh Avatar answered Aug 15 '26 20:08

shoosh



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!