基类pet包含一个纯虚函数speak(),由pet类分别派生出Cat类和Dog 类。Cat类扩展数据成员名字(字符串),成员函数speak函数输出“喵”,Dog类扩展数据成员名字(字符串),成员函数speak函数输出“汪”
参考主函数:
int main()
{
string name;
cin >> name;
Cat cc(name);
cin >> name;
Dog dd(name);
Pet* pp;
pp = &cc;
pp->speak();
pp = ⅆ
pp->speak();
return 0;
}
【样例输入】
小猫
小狗
【样例输出】
小猫:喵
小狗:汪
稍等
#include <iostream>
#include <string>
using namespace std;
class Pet {
public:
virtual ~Pet() {}
virtual void speak() = 0;
};
class Cat : public Pet {
private:
string name;
public:
Cat(string _name) : name(_name) {}
void speak() {
cout << name << ": 喵" << endl;
}
};
class Dog : public Pet {
private:
string name;
public:
Dog(string _name) : name(_name) {}
void speak() {
cout << name << ": 汪" << endl;
}
};
int main() {
string name;
cin >> name;
Cat cc(name);
cin >> name;
Dog dd(name);
Pet* pp;
pp = &cc;
pp->speak();
pp = ⅆ
pp->speak();
return 0;
}
要写出类呗?
#include <iostream>
using namespace std;
#include <string>
class Pet
{
public:
virtual void speak() = 0;
};
class Cat : public Pet
{
private:
string name;
public:
virtual void speak() {cout<<name<<":喵"<<endl;}
Cat(string n) : name(n) {}
};
class Dog : public Pet
{
private:
string name;
public:
virtual void speak() {cout<<name<<":汪"<<endl;}
Dog(string n) : name(n) {}
};
int main()
{
string name;
cin >> name;
Cat cc(name);
cin >> name;
Dog dd(name);
Pet* pp;
pp = &cc;
pp->speak();
pp = ⅆ
pp->speak();
return 0;
}