读几个小程序了解c++:Part 04(多态)

#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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值