我是靠谱客的博主 玩命皮卡丘,最近开发中收集的这篇文章主要介绍【C++提高】dynamic_cast 动态类型转换1、dynamic_cast 动态类型转换2、实践演练,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1、dynamic_cast 动态类型转换

2、实践演练


1、dynamic_cast 动态类型转换

dynamic_cast   命名上理解是动态类型转换。如子类和父类之间的多态类型转换。

dynamic_cast<>(),动态类型转换,安全的基类和子类之间转换;运行时类型检查

2、实践演练

#include <iostream>
using namespace std;

//水果父类
class Fruit {
public:
    virtual void fruitType() = 0;
};

//苹果
class Apple : public Fruit{
public:
    virtual void fruitType()
    {
        cout << "apple" << "n";
    }

    void getColor()
    {
        cout << "red" <<endl;
    }
};

//香蕉
class Banana : public Fruit {
public:
    virtual void fruitType()
    {
        cout << "banana" << "n";
    }

    void getBanana()
    {
        cout << "yellow" <<endl;
    }
};

//ObjPlay显示
void ObjPlay(Fruit *fruit)
{
    fruit->fruitType();
    Apple *apple = dynamic_cast<Apple*>(fruit);
    if(apple != NULL)
    {
        apple->fruitType();
        apple->getColor();
    }

    Banana *banana = dynamic_cast<Banana*>(fruit);
    if(banana != NULL)
    {
        banana->fruitType();
        banana->getBanana();
    }
}

int main() {
    ObjPlay(new Apple);
    //ObjPlay(new Banana);
    return 0;
}

最后

以上就是玩命皮卡丘为你收集整理的【C++提高】dynamic_cast 动态类型转换1、dynamic_cast 动态类型转换2、实践演练的全部内容,希望文章能够帮你解决【C++提高】dynamic_cast 动态类型转换1、dynamic_cast 动态类型转换2、实践演练所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部