【C/C++】多态-毒株的灭亡

题目描述:

为了模拟毒株变异、生活在我们体内以及被我们免疫系统消灭的过程,乎优塔写了以下程序,请补充完整程序,并运行出毒株灭亡的结果。

#include <iostream>
using namespace std;
class Virus {
    public: 
        Virus() {
            cout << "I am the ancestor of the new virus!" << endl;
        }
        ~Virus() {
            cout << "I must disappear!" << endl;
        } 
        _____________________; //定义纯虚函数 
};
class vOne : public Virus
{
    public: 
        vOne() {
            cout << "vOne is born." << endl;
        }
        ~vOne() {
            cout << "vOne is dead." << endl;
        }
        void eat() {
            cout << "vOne is living in your body." << endl;
        }
};
class vTwo : public Virus
{
    public: 
        vTwo() {
            cout << "vTwo is born." << endl;
        }
        ~vTwo() {
            cout << "vTwo is dead." << endl;
        }
        void eat() {
            cout << "vTwo is living in your body." << endl;
        }
};

int main() {
    _____________________;     //定义父类指针v 
    _____________________;     //定义vOne对象v1 
    _____________________;     //定义vTwo对象v2 
    v = &v1;
    _____________________; //通过父类指针调用eat()方法 
    v = &v2;
    _____________________; //通过父类指针调用eat()方法 
    
    cout << "Our immune system is kill v1 and v2..." << endl;
    return 0;

输入描述:

输出描述:

补充该程序后,运行的结果。
#include <iostream>
using namespace std;
class Virus {
public:
	Virus() {
		cout << "I am the ancestor of the new virus!" << endl;
	}
	~Virus() {
		cout << "I must disappear!" << endl;
	}
	virtual void eat()
	{
		cout << "Virus is living in your body." << endl;
	}//定义纯虚函数 
};
class vOne : public Virus
{
public:
	vOne() {
		cout << "vOne is born." << endl;
	}
	~vOne() {
		cout << "vOne is dead." << endl;
	}
	void eat() {
		cout << "vOne is living in your body." << endl;
	}
};
class vTwo : public Virus
{
public:
	vTwo() {
		cout << "vTwo is born." << endl;
	}
	~vTwo() {
		cout << "vTwo is dead." << endl;
	}
	void eat() {
		cout << "vTwo is living in your body." << endl;
	}
};

int main() {
	Virus* v;//定义vTwo对象v2 
	vOne v1;//定义vOne对象v1 
	vTwo v2;//定义vTwo对象v2 
	v = &v1;
	v->eat(); //通过父类指针调用eat()方法 
	v = &v2;
	v->eat();//通过父类指针调用eat()方法 

	cout << "Our immune system is kill v1 and v2..." << endl;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值