18-9.txt
来自「《C-C++完美演绎》源代码 《C-C++完美演绎》源代码」· 文本 代码 · 共 41 行
TXT
41 行
/* 范例: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 + =
减小字号Ctrl + -
显示快捷键?