鱼C论坛

 找回密码
 立即注册
查看: 930|回复: 1

小甲鱼C++快速入门课程里面 虚方法那一节

[复制链接]
发表于 2022-3-6 10:05:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
#include <string>
using namespace std;
class Pet{
        public:
                Pet(string theName);
                void eat();
                void sleep();
                void play();
        protected:
                string name;
};

class Cat: public Pet{
        public :
                Cat(string theName);
                void climb();
                void play();
       
};

class Dog : public Pet{
        public :
        Dog(string theName);
        void bark();
        void play();
};

Pet::Pet(string theName){
        name =  theName;
}

void Pet::eat(){
        cout<<name<<"正在吃东西"<<endl;
         
}
void Pet::sleep(){
        cout<<name<<"正在睡大觉"<<endl;
       
}

void Pet::play(){
        cout<<name<<"正在玩呢\n"<<endl;
}
Cat::Cat(string theName) : Pet(theName){
}
void Cat::climb(){
        cout<<name<<"正在爬树"<<endl;
         
}
void Cat::play(){
        cout<<name<<"玩毛线球"<<endl;
}
Dog::Dog(string theName) : Pet(theName){
}
void Dog::bark(){
        Pet::play();                 //小甲鱼弄这个函数没看懂,但是我觉得没有必要写这个 所以我注释了
        cout<<name<<"旺旺"<<endl;
         
}
void Dog::play(){
        Pet::play();                 //小甲鱼弄这个函数没看懂,但是我觉得没有必要写这个 所以我注释了
        cout<<name<<"正在追猫"<<endl;
         
}
int main(){
        Pet *cat =  new Cat("加菲");          //这里我改成了Cat  *cat =  new Cat("加菲");
        Pet *dog =  new Dog("欧迪");          //这里我改成了Dog  *cat =  new Dog("欧迪");
       
        cat->sleep();
        cat-> eat();
        cat->play();
       
        dog->sleep();
        dog-> eat();
        dog->play();
       
        delete cat;
        delete dog;
       
        return 0;
}


我的这种写法是否有什么问题??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-6 10:16:59 | 显示全部楼层
就是主函数里面,直接使用子类声明子类实例不就不用使用虚方法了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-23 02:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表