Virtual Function¶
Examples¶
C++¶
Student * p = new Student();
p->aboutMe();
Person * p = new Student();
p->aboutMe();
class Person {
  ...
  virtual void aboutMe() {
    cout << "I am a person.";
  }
};
class Student : public Person {
  public:
  void aboutMe() {
    cout << "I am a student.";
  }
};
class Person {
  int id;
  char name[NAME_SIZE];
  public:
  virtual void aboutMe() {
    cout << "I am a person." << endl;
  }
  virtual bool addCourse(string s) = 0;
};
class Student : public Person {
  public:
  void aboutMe() {
    cout << "I am a student." << endl;
  }
  bool addCourse(string s) {
    cout << "Added course " << s << " to student." << endl;
    return true;
  }
};
int main() {
  Person * p = new Student();
  p->aboutMe();
  p->addCourse("history");
  delete p;
}