📄 18-9.txt
字号:
/* 范例:18-9 */
#include <iostream.h>
class Base
{
public:
virtual void show(){} /* 要做向下转型的动作,在父类中至少要含有一个虚拟
函数 */
};
class Derive: public Base{};
void main()
{
Base *ptr1 = new Derive;
Base *ptr2 = new Base;
Derive *ptr3;
ptr3 = dynamic_cast<Derive*>(ptr1);
if (ptr3)
{
cout << "ptr1 => ptr3 success!\n";
delete ptr3;
}
else
cout << "ptr1 => ptr3 failure!\n";
ptr3 = dynamic_cast<Derive*>(ptr2);
if (ptr3)
{
cout << "ptr2 => ptr3 success!\n";
delete ptr3;
}
else
cout << "ptr2 => ptr3 failure!\n";
getchar();
}
程序执行结果:
ptr1 => ptr3 success!
ptr2 => ptr3 failure!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -