C++编程实例-多态(一)

实验13 多态(一)

【实验目的】

通过本实验,掌握类的继承与多态的概念。

【实验要求】

⑴熟练掌握类继承的不同方式。

⑵熟练掌握类的多态特性。

⑶熟练掌握虚函数的定义及使用方法。

【实验内容】

类S公有继承类String,类String的input()、output()函数、 get() 函数、 f() 函数为虚函数。

#include<iostream>

using namespace std;

class String{

private:

    char *k;

public:

    String(){ k=new char[100]; }

    ~String(){ delete []k; }

    virtual void input(){ s(); cin>>k; }

    virtual void output(){ cout<<"/""<<k<<"/""<<endl; }

    virtual char *get(){return k;}

    virtual void f(char *p);

    inline void s()const{cout<<"Please input a string: ";}

    void space(char *p);

};

void String::f(char *p){

    char *q=p;

    while(*p!='/0'){

          if(*p>='a'&&*p<='z')*q++=*p;

          p++;

    }

    *q='/0';

}

void String::space(char *p){

    char *q=p;

    while(*p!='/0'){

          if(*p!=' ')*q++=*p;

          p++;

    }

    *q='/0';

}

class S:public String{

private:

    char *p;

public:

    S(){ p=new char[100];}

    ~S(){ delete []p;}

    void input(){ s(); cin>>p; }

    void output(){ cout<<"/""<<p<<"/""<<endl; }

    void f(char *p);

    char *get(){return p;}

};

void S::f(char *p){

    char *q=p;

    while(*p!='/0'){

          if(*p>='A'&&*p<='Z')*q++=*p;

          p++;

    }

    *q='/0';

}

void fun(String &a){

    a.space(a.get());

    a.input();

    a.f(a.get());

    a.output();

}

int main(){

    String a; fun(a);

    S b; fun(b);

    return 0;

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值