**
定义一个Gril类和一个Boy类
**
【问题描述】定义一个Gril类和一个Boy类,这两个类中都有表示姓名、年龄的私有数据成员,都要定义构造函数、析构函数、输出成员变量信息的公有成员函数。
根据已有的main函数,编写Girl类和Boy类,并能够输出如下的信息。
【输入形式】
【输出形式】
【样例输入】
zhangsan 19 lisi 20
【样例输出】
Girl constructing…
Boy constructing…
Girl’s name:zhangsan
Girl’s age:19
Boy’s name:lisi
Boy’s age:20
Boy’s name:lisi
Boy’s age:20
Girl’s name:zhangsan
Girl’s age:19
Boy destructing…
Girl destructing…
#include<iostream>
#include<cstring>
using namespace std;
class Boy;
class Girl
{
private:
int age;
char name[20];
public:
Girl(char [],int );
~Girl();
void print();
void visitBoy(Boy *);
friend Boy;
};
class Boy
{
private:
int age;
char name[20];
public:
Boy(char[],int);
~Boy();
void print();
void visitGirl(Girl&);
friend Girl;
};
Girl::Girl(char name_[],int age_)
{
cout<<"Girl constructing..."<<endl<<endl;
strcpy(name,name_);
age=age_;
}
Girl::~Girl()
{
cout<<"Girl destructing..."<<endl;
cout<<endl;
}
void Girl::print()
{
cout<<"Girl's name:"<<name<<endl<<endl;
cout<<"Girl's age:"<<age<<endl<<endl;
}
void Girl::visitBoy(Boy *boy)
{
cout<<"Boy's name:"<<boy->name<<endl<<endl;
cout<<"Boy's age:"<<boy->age<<endl<<endl;
}
Boy::Boy(char name_[],int age_)
{
cout<<"Boy constructing..."<<endl<<endl;
strcpy(name,name_);
age=age_;
}
Boy::~Boy()
{
cout<<"Boy destructing..."<<endl;
cout<<endl;
}
void Boy::print()
{
cout<<"Boy's name:"<<name<<endl<<endl;
cout<<"Boy's age:"<<age<<endl<<endl;
}
void Boy::visitGirl(Girl &girl)
{
cout<<"Girl's name:"<<girl.name<<endl<<endl;
cout<<"Birl's age:"<<girl.age<<endl<<endl;
}
int main(){
char name[30];
int age;
cin>>name>>age;
Girl girl(name,age);
cin>>name>>age;
Boy boy(name,age);
girl.print();
boy.print();
girl.visitBoy(&boy);
boy.visitGirl(girl);
return 0;
}