6-5 派生类的定义和使用 (10分)
按要求完成下面的程序:
1、定义一个Animal
类,包含一个void类型的无参的speak
方法,输出“animal language!”。
2、定义一个Cat
类,公有继承自Animal
类,其成员包括:
(1)私有string
类型的成员m_strName
;
(2)带参数的构造函数,用指定形参对私有数据成员进行初始化;
(3)公有的成员函数print_name
,无形参,void
类型,功能是输出成员m_strName
的值,具体输出格式参见main函数和样例输出。
类和函数接口定义:
参见题目描述。
裁判测试程序样例:
#include <iostream>
#include <string>
using namespace std;
/* 请在这里填写答案 */
int main()
{
Cat cat("Persian"); //定义派生类对象
cat.print_name(); //派生类对象使用本类成员函数
cat.speak(); //派生类对象使用基类成员函数
return 0;
}
输入样例:
本题无输入。
输出样例:
cat name: Persian
animal language!
我的代码:
class Animal
{
private:
public:
void speak()
{
cout<<"animal language!";
}
};
class Cat:public Animal
{
private:
string m_strName;
public:
Cat(string name)
{m_strName=name;}
string Getname()
{return m_strName;}
void print_name()
{cout<<"cat name: "<<Getname()<<endl;}
};
Q:使用strcpy报错,未解决
编译环境为Xcode PTA已通过