If u use key word "virtual" to specify a function in base class, u may override(same name, same return & same arguments) it in derived class if u want use the polymorphism in cpp.
If u define a function in derived class and use just a same name(return or argument may differ) as in base class, whatever u sepcify "virtual" to the function in base class or not, a derived class object can only call it's own version function, then the same name function in base class is hidden.