⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program_14_18.cpp

📁 本程序为visual c++课件讲义
💻 CPP
字号:
// Program 14.18: Polymorphism demo
#include <iostream>

using namespace std;

class BaseClass {
    public:
        BaseClass() { return; }
        virtual void Display() {
            cout << "BaseClass Display" << endl;
        };
        void Print() {
            cout << "BaseClass Print" << endl;
        };
};

class DerivedClass1 : public BaseClass {
    public:
        DerivedClass1() { return; }
        virtual void Display() {
            cout << "DerivedClass1 Display" << endl;
        };
        void Print() {
            cout << "DerivedClass1 Print" << endl;
        };
};

class DerivedClass2 : public BaseClass {
    public:
        DerivedClass2() { return; }
        virtual void Display() {
            cout << "DerivedClass2 Display" << endl;
        };
        void Print() {
            cout << "DerivedClass2 Print" << endl;
        };
};

class DerivedClass3 : public BaseClass {
    public:
        DerivedClass3() { return; }
        virtual void Display(int i) {
            cout << "DerivedClass3 Display " << i << endl;
        };
        void Print() {
            cout << "DerivedClass3 Print" << endl;
        };
};

void Output(BaseClass &);

BaseClass A;
DerivedClass1 B;
DerivedClass2 C;
DerivedClass3 D;

BaseClass *Ptr;

int main() {

    A.Display();
    B.Display();
    C.Display();
    
    cout << "-------------------------------\n";
    Ptr = &A;
    Ptr->Display();
    
    Ptr = &B;
    Ptr->Display();
    
    Ptr = &C;
    Ptr->Display();
    cout << "-------------------------------\n";    
    A = B;
    A.Display();
    
    A = C;
    A.Display();
    
    cout << "-------------------------------\n";    
    Output(A);
    Output(B);
    Output(C);
    
    cout << "-------------------------------\n";    
    Ptr = &A;
    Ptr->Print();
    
    Ptr = &B;
    Ptr->Print();
    
    Ptr = &C;
    Ptr->Print();
    
    cout << "-------------------------------\n";    
//    D.Display();
    D.Display(300);
    D.BaseClass::Display();
    cout << "-------------------------------\n";    
    Ptr = &D;
    Ptr->Display();
    
    return 0;
}

void Output(BaseClass &R) {
    R.Display();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -