#include <iostream>
using namespace std;
class Dog
{
private:
string sex;
int age;
string kind;
public:
//显式调用,构造初始化列表
explicit Dog()
:sex("male"),age(5),kind("中华田园犬"){}
void show()
{
cout<<"性别:"<<sex<<" 年龄:"<<age<<" 品种:"<<kind<<endl;
}
//写函数
void set_sex(string s)
{
sex=s;
}
void set_age(int a)
{
age=a;
}
void set_kind(string k)
{
kind=k;
}
//读函数
int get_age()
{
return age;
}
string get_sex()
{
return sex;
}
string get_kind()
{
return kind;
}
};
inline Dog *birth( Dog d)
{
if(d.get_sex()=="female")
{
if(d.get_age()>=2 &&d.get_age()<=5)
{
Dog *dog=new Dog;
return dog;
}
}
else
return NULL;
}
int main()
{
string sex;
string kind;
int age;
Dog *dog1=new Dog;
dog1->show();
cout<<endl;
Dog *dog2=new Dog;
cout<<"请输入第二只狗的性别,年龄,品种"<<endl;
getline(cin,sex);
cin>>age;
getchar();
getline(cin,kind);
dog2->set_sex(sex);
dog2->set_age(age);
dog2->set_kind(kind);
cout<<"第二只狗的性别、年龄、品种分别为"<<endl;
dog2->show();
cout<<endl;
Dog *dog3 =birth(*dog2);
if(dog3==NULL)
cout<<"没有小狗"<<endl;
else
{
cout<<"输入小狗的性别"<<endl;
getline(cin,sex);
dog3->set_sex(sex);
dog3->set_age(1);
if(dog2->get_kind()==dog1->get_kind())
dog3->set_kind(dog1->get_kind());
else
dog3->set_kind(dog1->get_kind()+dog2->get_kind());
cout<<"小狗的信息为"<<endl;
dog3->show();
delete dog3;
}
delete dog2;
delete dog1;
return 0;
}
c++,类、对象练习题之狗类
最新推荐文章于 2024-08-18 21:07:18 发布