#include <stdio.h>

// 股票1
class Stock1
{
public:
	void Sell() // 卖股票
	{
		printf("股票1卖出\n");
	}
	
	void Buy() // 买股票
	{
		printf("股票1买入\n");
	}
};

// 股票2
class Stock2
{
public:
	void Sell() // 卖股票
	{
		printf("股票2卖出\n");
	}
	
	void Buy() // 买股票
	{
		printf("股票2买入\n");
	}
};

// 股票3
class Stock3
{
public:
	void Sell() // 卖股票
	{
		printf("股票3卖出\n");
	}
	
	void Buy() // 买股票
	{
		printf("股票3买入\n");
	}
};

// 国债1
class NationalDebt1
{
public:
	void Sell() // 卖国债
	{
		printf("国债卖出\n");
	}
	
	void Buy() // 买国债
	{
		printf("国债买入\n");
	}
};

// 房地产1
class Realty1
{
public:
	void Sell() // 卖房地产
	{
		printf("房地产卖出\n");
	}
	
	void Buy() // 买房地产
	{
		printf("房地产买入\n");
	}
};

// 基金
class Fund
{
public:
	Fund() : gu1(new Stock1()),gu2(new Stock2()),gu3(new Stock3()),nd1(new NationalDebt1()),rt1(new Realty1()){}
	
	void BuyFund()
	{
		gu1->Buy();
		gu2->Buy();
		gu3->Buy();
		nd1->Buy();
		rt1->Buy();
	}
	
	void SellFund()
	{
		gu1->Sell();
		gu2->Sell();
		gu3->Sell();
		nd1->Sell();
		rt1->Sell();
	}
protected:
	Stock1* gu1;
	Stock2* gu2;
	Stock3* gu3;
	NationalDebt1* nd1;
	Realty1* rt1;
};

int main()
{
	Fund jijin;
	jijin.BuyFund(); // 购买基金
	jijin.SellFund(); // 赎回基金
	return 0;
}