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 + -
显示快捷键?