C++基础语法----多态

[](()1.实现多态的三个先决条件


  • 进行了类的继承;

  • 子类与父类写了结构相同的函数(并且基类的函数是虚的);

  • 使用了基类指针指向了子类的对象

[](()2.语法


//语法(条件1,2):

calss A{

public:

virtual void print(){}

};

class B:public A{

public:

void print(){}

};

//语法(条件3)

int main(){

A *p;

B q;

p=&q;(基类的指针指向子类的对象)//此时便可以进行多态实现

return 0;

}

此时基类A中加virtual关键字的函数称为虚函数

如果将{}改为=0则函数print称为纯虚函数,AA类称为虚基类(或抽象类)【不可以直接定义对象】

当基类中有纯虚函数时如果继承的子类没有将纯虚函数实现,那么子类也将变为抽象类。

[](()3.具体实例


战争游戏,传进去的参数没变,仅仅改变了一下基类指针的指向

就产生了不同的效果。这个案例使用zhanzheng函数作为中央大舞台

基类指针指向友军或me实现多态,同一段代码不同的人对敌人发动进攻。

//实现多态的案例;

#include

using namespace std;

class OUr {

public:

int a=15;

virtual int get() {//进行虚函数处理;仅仅将这一个函数进行了虚函数处理;

return a;//其他没有进行虚处理的函数还会有老的问题

}

void print() {

cout << “我是父亲” << endl;

}

};

class him :public OUr{

public:

int h=25;

int get() {

return h;

}

void print() {

cout << “我是 Tom” << endl;

}

};

class me :public OUr {

public:

int m=30;

int get() {

return m;

}

void print() {

cout << “我是 zsc” << end

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值