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

本文介绍了一个使用C++实现多态性的示例。通过基类Student和派生类Undergraduate展示如何通过虚函数实现多态行为。在主函数中通过指向基类的指针调用虚函数,演示了多态的特性。
#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值