关于类之间的五种关系 UML

如图关于如何实现上图图中的几种关系,最近我写的一个小程序,希望大家多多指点:

 

 
 
 
 
 
/************************************************************************/
/*            课程科目:软件工程          作者邮箱:juste0830@126.com          */
/*            开发环境:VC6.0          编写日期: 2012年11月10日晨              */
/***********************************************************************/
#include <iostream.h>

/************定义水类*****************/
class  water
{
   //关于水的属性和操作
public:
	char provide_need2;   //水提供生命存的一个需求之一
	char provide_need1;  //水提供生命存的一个需求之一
};
/************定义翅膀类*****************/
class  wing
{
public:
	friend class bird;
private:
	wing()
	{
		cout<<"有翅膀-";
	}
};
/************定义气候类*****************/ 
class climate
{
public:
	void show()
	{
		cout<<"气候适宜,";
	}
};

/************定义动物类*****************/ 
class  animal         
{
private:	
	 char have_live;      //有生命
	 char need1;
     char need2;
public:
	
	animal(const water& w)
	{
		need1=w.provide_need1;
		need2=w.provide_need2;
	}
	void multiply()       //繁殖
	{
		cout<<"-能繁殖"<<endl;
	}
};


/************定义鸟类*****************/ 
class bird:public animal                 //继承关系
{
public:
	wing theWing;
	bird(water& w):animal(w)
	{
	}

	void lay_egg()
	{
		cout<<"下蛋"<<endl;
	}

private:
	char have_feather;   //有羽毛
	char have_no_tooth;  //没有牙齿
};
/************定义大雁类*****************/
class goose :public bird
{
public:
	goose(water& w):bird(w)
	{
	}

};
/************定义雁群类*****************/
class geese
{
public:
	goose g1;		//雁群有大雁组成
	goose g2;
	
};

/************定义企鹅类*****************/ 
class  penguin :public bird
{
public:
	penguin(water &w):bird(w)
	{
	}
	void Live(climate CL)
	{
		CL.show();
		cout<<"企鹅生存下来"<<endl;
	}
};

int main()
{
	
	water theWater;
	//animal theAnimal;   //这里会出现错误,因为没有水,动物就不能生存------------------依赖关系
	animal theAnimal(theWater);//给与了水,动物才能存在(被创建)
	cout<<"这是个鸟:";
	bird bird1(theWater);  //鸟继承与动物,因此鸟也依赖水,没水不能有鸟的创建
	bird1.multiply();     //在bird中没有定义有生命,但是它继承了父类animal--------------继承关系

	penguin thePenguin(theWater);
	climate theClimate;
	//thePenguin.Live();//没有合适的气候,企鹅就不能生存
	thePenguin.Live(theClimate);//存在依赖,继承,还有关联-----------------------------关联关系


	//wing theWing;	//翅膀不能被单独定义,只能在鸟存在时,翅膀才能存在-----------------组合关系
	cout<<"这是大雁:";
    //如果不定义大雁类,雁群类将无法定义。也就是说,如果不存在大雁,就不存在雁群
	goose theGoose(theWater);// 但是大雁可以单独存在---------------------------  -------聚合关系
	cout<<"\n不存在大雁,就不存在雁群"<<endl;
	cout<<"不存在雁群,去可以存在大雁"<<endl;
	cout<<endl;
	return 0;
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值