C++第12周mooc在线测评—第12周 统一接口不同实现-多态性(虚函数与符号重载)

本文通过C++代码展示了虚函数在实现多态性中的应用,包括宠物类及其派生类Cat和Dog的Speak函数,以及抽象宠物类Pet的派生类Cat和Dog的GetInfo和Speak函数。代码示例演示了如何通过基类指针调用派生类的成员函数,实现不同对象的不同行为。此外,还涉及了复数类的加法运算符重载和矩阵加法运算的实现。
摘要由CSDN通过智能技术生成
//1虚函数实现多态性(20分)
//题目内容:
//定义宠物类Pet,包含虚函数Speak,显示如下信息“How does a pet speak ? ”; 定义公有派生类Cat和Dog,其Speak成员函数分别显示:“miao!miao!”和“wang!wang!”。主函数中定义Pet,Cat和Dog对象,再定义Pet指针变量,分别指向Pet,Cat和Dog对象,并通过指针调用Speak函数,观察并分析输出结果。
//
//输入格式 :
//不需要输入
//
//输出格式:
//各类调用Speak函数输出的结果
//
//输入样例:
//
//
//输出样例:
//How does a pet speak ?
//miao!miao!
//wang!wang!
#include<iostream>

using namespace std;

class Pet
{
public:
	Pet()
	{}
	~Pet()
	{}
	virtual void Speak()
	{
		cout << "How does a pet speak?" << endl;
	}
private:
};

class Cat:public Pet
{
public:
	Cat()
	{}
	~Cat()
	{}
	virtual void Speak()
	{
		cout << "miao!miao!" << endl;
	}
private:

};

class Dog:public Pet
{
public:
	Dog()
	{}
	~Dog()
	{}
	virtual void Speak()
	{
		cout << "wang!wang!" << endl;
	}

private:

};

int main()
{
	Pet pet1;
	Dog dog1;
	Cat cat1;
	Pet *point;
	point = &pet1;
	point->Speak();
	point = &cat1;
	point->Speak();
	point = &dog1;
	point->Speak();
	system("pause");
	return 0;
}

//2抽象宠物类的实现(20分)
//题目内容:
//定义抽象宠物类Pet,其中数据成员包括:名字,年龄和颜色;成员函数包括:构造函数;获取成员数据值的函数;纯虚函数Speak和纯虚函数GetInfo;
//定义Pet的派生类Cat和Dog,其中Speak函数分别显示猫和狗的叫声, 而GetInfo函数分别输出Cat和Dog的属性。主函数中定义Pet指针变量,分别指向动态生成的Cat和Dog对象,并通过指针分别调用GetInfo函数和Speak函数,观察并分析输出结果。
//
//输入格式 :
//猫和狗的信息
//
//输出格式:
//请参考输出样例,严格遵照格式要求输出,建议直接复制样例中的部分文字粘贴进自己的代码中.(冒号是英文冒号,冒号后无空格)
//
//输入样例:
//mikey 2 blue
//benben 1 black
//
//输出样例:
//猫的名字 : mikey
//   猫的年龄 : 2
//	  猫的颜色 : blue
//		 猫的叫声 : miao!miao!
//			狗的名字 : benben
//			   狗的年龄 : 1
//				  狗的颜色 : black
//					 狗的叫声 : wang!wang!
//
//							时间限制:500ms内存限制:32000kb
#include <iostream>
#include <string.h>
using namespace std;
class Pet
{
protected:
	char Name[10];
	int Age;
	char Color[10];
public:
	Pet(char name[],int age,char color[])
	{
		this->Age = age;
		strcpy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值