C++中dynamic_cast的用法是什么

网友投稿 198 2024-01-11

dynamic_cast是C++中的一种类型转换操作符,用于在继承关系中进行类型转换。它用于将一个指向基类的指针或引用转换为指向派生类的指针或引用。

语法如下: dynamic_cast<目标类型>(表达式)

使用dynamic_cast时,必须满足以下条件:

源类型必须是多态类型,即需要带有虚函数的类或者类的指针/引用; 目标类型必须是源类型的公有派生类或者基类。

dynamic_cast的作用是在运行时检查类型转换的合法性,如果转换合法,则返回指向目标类型的指针或引用;如果转换不合法,则返回nullptr(对于指针)或抛出std::bad_cast异常(对于引用)。

示例:

classBase { public: virtualvoidprint(){ cout << "Base class" << endl; } }; classDerived : public Base { public: voidprint()override{ cout << "Derived class" << endl; } }; intmain(){ Base* basePtr =new Derived(); Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);if (derivedPtr != nullptr) { derivedPtr->print(); // 输出:Derived class } delete basePtr; return 0; }

在上述示例中,我们将Derived类的对象指针赋值给了Base类的指针basePtr。然后使用dynamic_cast将basePtr转换为Derived类的指针,如果转换成功,则调用Derived类的print函数输出"Derived class"。

购买使用服务器,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:centos如何退出命令界面
下一篇:centos怎么查看当前目录磁盘情况
相关文章

 发表评论

暂时没有评论,来抢沙发吧~