宠物类.txt

来自「学C++的同学是不是遇到麻烦了」· 文本 代码 · 共 36 行

TXT
36
字号
      一个小孩得知邻居家养了宠物,但不知是猫是狗。于是他丢了一块石头到邻居家院中以探明真相,被石头击中的宠物就会执行speak()函数,如果“miaomiao!”叫,则可得知该宠物是猫;如果“wangwang!”叫,则可得知该宠物是狗。
       
类的伪代码如下:
       class  宠物
       {
             public:
                   void  char  *speak(){cout<<"zzz";}
       };
       class  猫:public  宠物
       {
             public:
                   void  char  *speak(){cout<<"miaomiao!";}
       };
       class  狗:public  宠物
       {
             public:
                   void  char  *speak(){cout<<"wangwang!";}                                    …
       };
       
      小孩丢石头,相当于调用了宠物类对象的speak()函数。因为小孩不知道具体是猫还是狗,他的石头是朝宠物类对象仍的,而实际接收到此消息(石头)的宠物却是宠物类的派生类对象猫或狗。

调用过程的伪代码如下:
      void  main()
      {
           宠物   *p;
           猫      cat1;
           狗      dog1;
           如果院子中的宠物是猫的话:则p=&cat1;
           如果院子中的宠物是狗的话:则p=&dog1;  
            p->speak();
      }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?