c++---练习题---动物世界

本文提供了一道C++编程题目,涉及Mammal类及其派生类Dog的设计。Dog类需要包含特定的构造函数、访问器方法以及行为方法如WagTail和BegForFood。程序员需要完成主函数的代码以测试类的功能,并确保输出合理。题目提供输入输出格式和样例,供编程者参考和验证程序的正确性。
摘要由CSDN通过智能技术生成

7-1 动物世界 (15分)

补充程序 :

1、实现Mammal类的方法

2、由Mammal类派生出Dog类,在Dog类中增加itsColor成员(COLOR类型)

3、Dog类中增加以下方法:

constructors: Dog()、Dog(int age)、Dog(int age, int weight)、Dog(int age, COLOR color)、 Dog(int age, int weight, COLOR color)、~Dog()

accessors: GetColor()、SetColor()

Other methods: WagTail()、BegForFood() ,并实现以上这些方法 。

提示:类似Speak()、WagTail()这些动作,函数体可以是输出一句话。比如:Mammal is spaeking... , The Dog is Wagging its tail...

4、补充主函数的问号部分,并运行程序,检查输出是否合理。

enum COLOR{ WHITE, RED, BROWN, BLACK, KHAKI };

class Mammal
{
	public:
		//constructors
		Mammal();
		Mammal(int age);
		~Mammal();
		
		//accessors
		int GetAge() const;
		void SetAge(int);
		int GetWeight() const;
		void SetWeight(int);
		
		//Other methods	
		void Speak() const;
		void Sleep() const;		
	protected:
		int itsAge;
		int itsWeight;
};

int main()
{
	Dog Fido;
	Dog Rover(5);
	Dog Buster(6,
#include #include class A { private: char name[15]; char sex[3]; int age; char cata[20]; public: A(); A(char *,char *,int,char *); //构造函数 A(A & obj);//增加了复制构造函数 A & operator=(A & obj);//赋值运算 void setn(char * );//设置名字函数 void sets(char * );//设置性别函数 void seta(int ); void setc(char *); void Display(){cout<<name<<"是一只"<<age<<"岁的"<<sex<<cata<<endl;}; ~A(){cout<<"执行析构函数"<<endl;} }; A::A(){ strcpy(name,"汪汪"); strcpy(sex,"公"); age=10; strcpy(cata,"狗"); cout<<"执行A()构造函数"<<endl; } A:: A(char * n,char * s,int a,char * c){ strcpy(name,n); strcpy(sex,s); age=a; strcpy(cata,c); cout<<"执行A(char *,char *,int,char *)构造函数"<<endl; }//构造函数 void A::setn(char * n){strcpy(name,n);}; void A::sets(char * s){strcpy(sex,s);}; void A::seta(int a){age=a;}; void A::setc(char * c){strcpy(cata,c);} A::A(A &obj){ strcpy(name,obj.name); strcpy(sex,obj.sex); age=obj.age; strcpy(cata,obj.cata); cout<<"执行A(A & obj)构造函数"<<endl; }//复制函数 A & A::operator=(A & obj){ strcpy(name,obj.name); strcpy(sex,obj.sex); age=obj.age; strcpy(cata,obj.cata); cout<<"执行重载'='函数,得:"; cout<<name<<"是一只"<<age<<"岁的"<<sex<<cata<<endl; return *this; }//赋值构造函数 void main(){ A a1;a1.Display();cout<<endl; a1.setn("乐乐");a1.sets("母");a1.seta(1);a1.setc("兔子"); A a2(a1);a2.Display();cout<<endl; a2.setn("喵喵");a2.sets("母");a2.seta(2);a2.setc("猫"); cout<<"现在的a2:";a2.Display();cout<<endl; a2=a1; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值