/*
*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:郭永恒
*完成日期:2016年5月3日
*版 本 号:v1.0
*
*问题描述:根据类图,定义各个类,并测试,在问题(1)的基础上扩充
*/
类:
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
Person(int n = 0, string nam = " "):age(n),name(nam){}
void action(){cout << name << " " << age << endl;};
string getName(){return name;}
void show_person()
{
cout << "age:" << age << endl;
cout << "name:" << name << endl;
}
private:
int age;
string name;
};
class Polic:public Person
{
public:
Polic(int n = 0, string nam = " ", int lev = 0,int n1 = 0,string nam1 = " "):Person(n,nam),level(lev),leader(n1,nam1){}
void arrest(Person &person){cout << person.getName() << " were arrested by police officer " << this->getName() << endl;}
void show_polic()
{
cout << "leader:" << endl;
leader.show_person();
cout << "polic:" << endl;
this->show_person();
cout << "level" << level << endl;
}
private:
int level;
Person leader;
};
class Cook:public Person
{
public:
Cook(int n = 0, string nam = " ", double sal = 0, int n1 = 0, string nam1 = " ", int lev = 0, int n2 = 0, string nam2 = " "):
Person(n,nam),salary(sal),protector(n1,nam1,lev,n2,nam2){}
string getCake(){return "ok";}
void show_cake()
{
cout << "protector:" << endl;
protector.show_polic();
cout << "cake:" << endl;
cout << "salary:" << salary << endl;
}
private:
double salary;
Polic protector;
};
测试函数:
int main()
{
Person p(20,"Jack");
p.show_person();
cout << endl;
Polic po(18,"Bob",2,20,"Jack");
po.show_polic();
cout << endl;
Cook c(22,"Marry",5000,18,"Bob",2,20,"Jack");
c.show_cake();
return 0;
}
运行结果: