c++ - Can I define the same function with the same number and type of params in the derived class? -
this question has answer here:
is legal (this header files, , .cpp files contain function definitions):
class human { protected:     std::string     m_name;     int             m_age;  public:     human();     void printname() const;     void printage() const; }; and re-define same void printname() const; (which not virtual) in derived class.
class student : public human { public:     student();     void printname() const;     void study() const; }; what this? not overriding. not overloading too, right? far overloading should have different type or number of arguments (method constant in both places). have done here?
simple answer: yes.
more complex answer: yes, codicil:
student s{}; s.printname();  // call student::printname() const human &h = s; h.printname();  // call human::printname() const on same object since methods aren't virtual, compiler call method based on type compiler sees @ point of call.
the printname() method in student override.  not virtual override.