#include "iostream"
using namespace std;
///多态是指不同子类间的同名函数表现形式不同
///实现多态可以让变量根据类型选择合适的同名函数
class Student {
public:
Student(string n, int a, int h, int w);
Student(){}
void set_(string n, int a, int h, int w);
virtual double study(); ///虚函数 函数(返回值类型、形参类型顺序、个数)必须完全一样才能实现多态
///virtual void study()=0; ///纯虚函数,抽象类
virtual ~Student();
private:
char *l;
string name;
int age;
int height;
int weight;
};
Student::~Student(){delete l;cout<<"Delete Student\n"<<endl;}
Student::Student(string n, int a, int h, int w) {set_(n, a, h, w);}
void Student::set_(string n, int a, int h, int w) {name=n, age=a, height=h, weight=w;}
double Student::study() {cout << "Student gz.\n" << endl;return 0.2;}
class Undergraduate:public Student{
public:
double study();
~Undergraduate();
private:
char *r;
double score;
};
Undergraduate::~Undergraduate(){delete r;cout<<"Delete Undergraduate.\n"<<endl;}
double Undergraduate::study(){cout<<"Undergraduate gz.\n"<<endl;return 1;}
int main(){
Undergraduate a;
Student b;
Student *sp;
sp=&a;
sp->study();
//sp=&b;
//sp->study();
return 0;
}
读几个小程序了解c++:Part 04(多态)
最新推荐文章于 2022-08-05 14:32:21 发布