Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Base {
- public:
- virtual void print() {
- cout << "In parent class";
- }
- virtual void print_non_virtual_function() {
- cout << "In parent class";
- }
- };
- class Derived:public Base {
- public:
- void print() override {
- cout << "In child class";
- }
- void print_non_virtual_function() override {
- cout << "In child class";
- }
- };
- int main () {
- Base* baseptr = new Base; // Объект типа родительского класса
- baseptr->print(); // In parent
- cout << endl;
- baseptr->print_non_virtual_function(); // In parent class // Проблема решена: метод вызвался, соответствуя типу объекта
- cout << endl;
- delete baseptr;
- baseptr = new Derived; // Объект типа дочерного класса
- baseptr->print(); // In child class
- cout << endl;
- baseptr->print_non_virtual_function(); // In child class
- delete baseptr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement