In Cplusplus, in a derived class, if we define a member function to override a member function in its parent class, is it necessary to declare a virtual virtual machine in the derived class?
For example, does one need to be declared gvirtual in Bso that it can override A::g? Which one of the following is true for the stated purpose?
class A{
public:
void f(){printf("A");}
virtual void g(){printf("A");}
}
class B : public A{
public:
void f(){printf("B");}
void g(){printf("B");}
}
or
class A{
public:
void f(){printf("A");}
virtual void g(){printf("A");}
}
class B : public A{
public:
void f(){printf("B");}
virtual void g(){printf("B");}
}
Thank.
source
share