Do you have to re-type the "virtual" keyword in a derived class for the overridden methods (where the methods are virtual in the base class):
eg:
class base {
virtual void foo(){/*do something*/};
}
class derived : public base {
/*type "virtual" here? */ void foo(){/*do something else */};
}
No, you don't need it.
( I Personally think that repeating it is good as you can know which methods are virtual without having to look to the base class )