📄 program_14_18.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 + -