小黄为了向小鑫展现他的编程实力,成为铃兰中学的编程霸主,决定先编写一个类与继承的程序,Dog类和Cat类继承Animal类;
Dog类、Cat类、Animal类各有一个默认构造函数,分别输出字符串“Dog”、“Cat”和“Animal”。输出字符串后换行。注意三个字符串的首字母都是大写。
在 Animal 类中定义纯虚函数 speak();
在 Dog 和 Cat类中覆写基类的 speak() 函数。Dog类的speak函数输出字符串“wang”之后换行;Cat类的speak函数输出字符串“miao”之后换行。注意字符串“wang”和“miao”都是小写字母
上述三个类中如果有任何其它函数,则这些函数不直接或者间接输出任何信息
在主函数中接受用户输入的一个整数N(大于0);
创建一个vector对象v (你可以用其它名字),存储Animal对象的指针。
按照先创建一个 Dog 对象,紧接着再创建一个 Cat 对象这样交替创建的次序,一共创建 N 个 Dog对象和N个 Cat 对象;将这些Dog对象和Cat对象的指针按照创建的次序都存入v中。(提示:可以使用vector::push_back()函数)。
将存入v中的对象,按照先后次序,逐个调用 speak() 函数,然后用 delete 显式销毁。(注意:每调用一个对象的 speak() 之后,就立即用 delete 销毁该对象)。
程序中除了接受用户输入的整数之外,没有任何其它输入语句;
程序中除了构造函数和speak()的输出之外,没有任何其它输出。
输入格式:
一个大于零的整数
输出格式:
输出多行信息,最后一行是空行
没有任何其它提示信息
输入样例:
2
输出样例:
Animal
Dog
Animal
Cat
Animal
Dog
Animal
Cat
wang
miao
wang
miao
#include<bits/stdc++.h>
using namespace std;
class Animal{
public:
Animal