我是靠谱客的博主 玩命皮卡丘,最近开发中收集的这篇文章主要介绍【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、实践演练所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复