亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ex18.cpp

?? 這里有大量的習題解答
?? CPP
字號:
	
      //第18章			組合和繼承

//[例18.1] CType內含int類型的引用型成員和const成員
	#include <stdio.h>  
    static int numc=0;
	class CType                              
	{  public:	
		CType(int x=1,int y=2);             //構造函數全部設置缺省值
		CType::~CType();	                 //析構函數
	   private:	  int   n; 	
       const	 int   c;                     // c是一個不變的數據成員
       public:	int&  r;                 //r是一個附屬的引用型數據成員       
   	};          //這個r既可以關聯私有成員n也可以關聯其它全局變量
	CType::~CType()	{  printf("%d.[n=%d,r=%d] CType::~CType();",numc--,n,r);  }
	CType::CType(int x,int y)          //兩個參數的構造函數定義
    :r(y),                         //引用型成員與一個堆棧空間的數值形參關聯!危險
    c(x)                          // const數據成員初始化為x帶入的初始值
	{ 	 n=x;                      //另一個普通數據成員初始化為x
		printf("%d. [n=%d,r=%d]  CType(int,int);",++numc,n,r);	
	}	
	CType g;                               //全局對象g缺省調用構造函數
	void main()
	{  	printf("Enter into main(){\n");		
		{	CType x(3,4);     //局部對象x調用構造函數
			printf("x.r=%d\n",x.r);	      
		}	                  //局部對象x生存期結束,編譯器在此調用析構函數
 	    printf("Go  outof main() }\n");
	}
 //[例18.2]嵌入類和組合類的對象生滅
	#include <stdio.h>  
     static int num=0;
	class CEmbed                               //嵌入類的聲明
	{   public:     int   n; 
		CEmbed(int ,int );                       
	    private:	int&  m_r;                //m_r是一個特殊的引用型數據成員
   	};                                   //引用型數據成員要求冒號語法初始化
	CEmbed::CEmbed(int x,int y)
     :m_r(n)                               //引用型成員m_r與成員變量n關聯 
	{   n=x;
		printf("%d.n=%d,CEmbed(int,int);",++num,n);	
	}	
    class CContain                             //包含類的聲明
	{   public:	CEmbed a;                    //嵌入對象成員
		CContain(int x=1,int y=2);                //缺省構造函數
	    private: const	 CEmbed b; 	         //嵌入const對象成員   
    };  
	CContain::CContain(int x,int y):b(y,y),a(x,x)    //構造函數冒號初始化語法
	{  //嵌入對象a(x,x)首先調用CEmbed(int ,int );然后 b(y,y)調用CEmbed(int ,int );	
	    printf("%d.a=%d,b=%d,CContain(int,int);\n",++num,a.n,b.n);	
	}	   
	void main()	   {	 CContain z(3,4); }//調用構造函數CContain(int,int)
//    輸出:1. n=3, CEmbed(int,int);2. n=4, CEmbed(int,int);3.a=3,b=4, CContain(int,int);
///[例18.3] B類公共地繼承A類,A類的公共成員是B類的公共成員
    #include <stdio.h>       // A類的保護成員是B類的保護成員
	class A	{  public:       long&  X() { return  x;}
	           protected:		long    x;	   };                         
	class B:public A {  public: B(){x=1;} 	};
	class C:public B {/* public:B::x;*/  	};// C類公共地繼承B類
	void main()     //在C類中可以通過 public:B::x;將保護成員改為公共的
	{ 	C b; 
	    long* p=&(b.X()+=1); //定義指針p,p指向保護的成員x,即p=&b.x
		printf("%d\n",*p);    // 但b.x導致對象在外部訪問保護成員是錯誤的。
   	}	//輸出: 2
   /// [例18.4] B類保護地繼承A類,A類保護的或公共的成員是B類的保護成員
    #include <stdio.h>    
	class A	{ 	protected:		long    x;	};                         
	class B: protected A{   public:	long&  X() { return  x;}	};
	class C: protected B {   public: B::X;  	}; //C類保護地繼承B類
	void main()  //public: B::X;界定成員的控制屬性優于繼承方式protected的控制屬性
	{ 	C b;   //public: B::X; 表示將基類中保護的成員在派生類中界定為public屬性
	    long* p=&(b.X()=1);    //定義指針p,p指向b.x
		printf("%d\n",*p);      //x在A和B類中是保護的,在C類中是保護的
   	}    //輸出: 1
  // [例18.5] B類私有地繼承A類,A類的公共的或保護的成員是B類的私有成員
   #include <stdio.h>        // A類的私有成員x不直接出現在派生類B的成員函數中
	class A	{   private:		long    x;	
	            public:   long&  X() { return  x;}  	};                         
	class B:  A{  public: long y; long& Y() { return  X();}	};
	class C:  private B { public: B::Y;	};// C類私有地繼承B類
	void main()      //public: B::Y;將基類中公共的成員在派生類中界定為public屬性
	{ 	C c;        // X是A類的公共成員是B類的私有成員
	    long* p=&(c.Y()=1);//c.y是錯誤的,y是B類的公共成員卻是C類的私有成員
		printf("%d\n",*p);// *p訪問基類的私有成員x或*p 是c.x的間接變量
   	}	//輸出: 1
   // [例18.6] B類保護地繼承A類, C類私有地繼承B類,
    #include <stdio.h>    
	class A	{ 	protected:		long    x;	};                         
	class B: protected A{   public:  	long&  operator+=(int n){ return  x+=n;}	};
	class C: private B {   public: B::operator+=;   public:B::x;	};
	void main()    // public: B::operator+=;表示這個成員函數在C類中是公共的。
	{ 	C b;b.x=1; //public: B::x; 表示將基類中保護的成員在派生類中界定為public屬性。
	    long* p=&(b+=2);// b+=2調用基類的成員函數B::operator+=
		printf("%d,%d\n",*p,b.x); //x在A和B類中是保護的,在C類中是公共的
   	}   //輸出: 3,3

//[例18.7]基類和嵌入對象的初始化
	#include <stdio.h>  
	struct SData{long nx;long ny;};            //此結構用于作為初始化的源數據
	typedef struct tagPOINT {long  x; long  y;} POINT;//標準的Windows點結構聲明
	class CPoint : public tagPOINT                //MFC類庫的CPoint類的聲明
	{                                           //僅保留兩個構造函數
		public:CPoint(){}                          //缺省構造函數
		CPoint(POINT initPt){x=initPt.x;y=initPt.y;}    //單參數構造函數
	};
	class CBase
	{	public:	CBase(){}                      //公共的缺省構造函數
			~CBase(){delete [] m_p;}             //析構函數
    protected:
		CBase(SData* pData)                    //保護的單參數構造函數
		{	m_n=pData->nx;                     //此函數由派生類的構造函數調用
	        m_p=new long [m_n];
		}
	    void Line(){for(int j=0;j<m_n;j++) m_p[j]=j;}
	protected: long  m_n;                          //數組的維數
       long* m_p;                               //定位數組的起點
	};   
   	class CDerived:public CBase                   //公共地繼承基類的屬性
	{   	public:	CDerived( SData* pData,CPoint pt);           //雙參數的構造函數
		CDerived(){}                          //缺省構造函數
			~CDerived(){delete [] m_p;}             //析構函數
            void Line();		                    //畫線的函數
			void Show();
	protected:  	  CPoint m_pt;                  //嵌入對象m_pt
	   long   m_n;       long*  m_p;     
	};   
	CDerived::CDerived(SData* pData,CPoint pt):CBase(pData),m_pt(pt)
	{                       //調用基類的構造函數,和嵌入對象的構造函數  
     m_n=pData->ny;  	 m_p=new long [m_n];	
	}
    void CDerived::Line()
	{    CBase::Line();
		for(int j=0;j<m_n;j++)	    m_p[j]=j;	   
	}	
   	void CDerived::Show()
	{   Line();
	   long sumx=0;long sumy=0;int k;
	  for( k=0;k<CBase::m_n;k++) sumx+=CBase::m_p[k];
	  for( k=0;k<m_n;k++) sumy+=m_p[k];
	  printf("{nx,ny}={%d,%d};",CBase::m_n,m_n);
      printf("sumx=%d,sumy=%d,m_pt={%d,%d}\n",sumx,sumy,m_pt.x,m_pt.y);
	}
	void main()
	{   SData  d={4,5};              //結構變量采用集合類的初始化語法
	    POINT  pt={60,70};            
	    CPoint cpt(pt);                  //對象采用構造函數的初始化語法
		CDerived obj(&d,cpt);            //obj調用構造函數CDerived(SData*,CPoint )
		(&obj)->Show();
	} //輸出:{nx,ny}={4,5};sumx=6,sumy=10, m_pt={60,70}






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本久道久久综合中文字幕| 国产精品国产三级国产aⅴ原创| 国产欧美精品国产国产专区| 亚洲一区二区视频在线观看| 懂色av中文一区二区三区| 欧美一区二区三区免费视频| 亚洲情趣在线观看| 国产成人啪午夜精品网站男同| 欧美精品黑人性xxxx| 亚洲裸体xxx| 成人精品高清在线| 国产午夜精品久久久久久免费视| 日本欧美一区二区三区| 欧美色图片你懂的| 亚洲一区二区3| 色激情天天射综合网| 国产精品不卡在线观看| 成人综合激情网| 国产亚洲精品精华液| 国内精品国产成人| 久久久久久影视| 精品系列免费在线观看| 欧美不卡视频一区| 精品一区二区三区蜜桃| 欧美精品一区男女天堂| 国模一区二区三区白浆| 日韩一级精品视频在线观看| 日韩精品电影在线| 日韩亚洲欧美在线观看| 久久精品国产亚洲高清剧情介绍| 欧美一二三区精品| 久久99精品久久久| 国产亚洲自拍一区| 成人av在线影院| 18欧美亚洲精品| 欧美色图第一页| 日韩精品91亚洲二区在线观看| 91麻豆精品国产91久久久久| 美女性感视频久久| 久久久久久久久久久久电影| 国产宾馆实践打屁股91| 国产精品二三区| 色婷婷综合中文久久一本| 亚洲国产日韩av| 91精品国产免费| 激情久久五月天| 中文字幕一区二区三| 色综合久久66| 青青国产91久久久久久| 国产欧美一二三区| 色哟哟国产精品| 免费高清在线视频一区·| 久久久www成人免费无遮挡大片| 成人av高清在线| 亚洲一区二区视频| 欧美电影免费观看高清完整版在线 | 国产日产精品1区| 91蜜桃免费观看视频| 日日嗨av一区二区三区四区| 精品国产99国产精品| 99re66热这里只有精品3直播| 亚洲国产精品久久久男人的天堂| 精品欧美乱码久久久久久| 99久久久久免费精品国产 | 亚洲欧洲日韩女同| 制服丝袜一区二区三区| 国产91精品在线观看| 亚洲成人精品一区| 国产婷婷色一区二区三区在线| 99re8在线精品视频免费播放| 日韩电影在线观看电影| 成人欧美一区二区三区视频网页 | 欧美成人在线直播| 91视频观看免费| 精品一区二区三区蜜桃| 亚洲综合成人网| 欧美经典一区二区三区| 欧美一区二区三区在线看| www.成人网.com| 国精产品一区一区三区mba桃花 | 欧美一区二区精品| k8久久久一区二区三区| 精品一区二区三区免费观看| 亚洲成人久久影院| 亚洲人成精品久久久久久| 精品黑人一区二区三区久久| 欧美伊人久久久久久久久影院 | 九色综合狠狠综合久久| 夜夜嗨av一区二区三区 | 久久久www成人免费无遮挡大片| 欧美日韩小视频| 在线观看视频一区| av电影在线观看不卡| 国产91对白在线观看九色| 麻豆精品在线播放| 日本在线不卡视频一二三区| 一区二区三区四区蜜桃| 最好看的中文字幕久久| 亚洲综合免费观看高清在线观看| 中文字幕二三区不卡| 久久蜜桃av一区精品变态类天堂 | 日韩一级黄色大片| 欧美电影一区二区| 欧美日韩精品免费| 精品视频在线免费观看| 欧美亚洲一区三区| 欧美亚洲动漫精品| 欧美三区在线观看| 91精品综合久久久久久| 777亚洲妇女| 日韩欧美亚洲另类制服综合在线| 欧美日韩国产三级| 91精品国产免费久久综合| 91精品国产一区二区| 欧美一区二区三区日韩| 欧美电影在哪看比较好| 日韩美女视频在线| 久久夜色精品一区| 欧美激情一区不卡| 亚洲免费观看在线视频| 一区二区三区在线视频免费| 亚洲在线一区二区三区| 天天综合日日夜夜精品| 欧美aaa在线| 国产乱一区二区| 国产99精品国产| 91日韩精品一区| 欧美性一二三区| 欧美一二区视频| 国产欧美日本一区视频| 国产精品久久免费看| 亚洲与欧洲av电影| 毛片一区二区三区| 国产xxx精品视频大全| 91丨porny丨户外露出| 欧美猛男超大videosgay| 欧美一级搡bbbb搡bbbb| 国产亚洲女人久久久久毛片| 亚洲天堂中文字幕| 午夜精品久久久久久久久久久 | 国产日韩三级在线| 亚洲女同一区二区| 蜜臀av性久久久久蜜臀av麻豆| 国产精品自拍毛片| 色先锋aa成人| 久久综合av免费| ㊣最新国产の精品bt伙计久久| 一区二区三区中文字幕在线观看| 日本美女一区二区| 99久久国产综合精品色伊| 欧美三级午夜理伦三级中视频| 精品久久久久久久久久久久久久久| 中文字幕一区二区视频| 日韩不卡一区二区| 99视频热这里只有精品免费| 欧美一区二区在线不卡| 中文字幕一区在线| 美腿丝袜一区二区三区| 日本电影欧美片| 国产欧美日韩三区| 天天综合天天综合色| 99精品欧美一区二区蜜桃免费| 日韩视频一区二区三区 | 中文字幕日韩一区| 久久99国内精品| 欧美日韩在线播放三区四区| 中文字幕乱码亚洲精品一区| 日本成人在线视频网站| 欧美在线免费观看视频| 亚洲欧洲性图库| 国产一区二区三区精品欧美日韩一区二区三区 | 91一区二区三区在线播放| 欧美tickling挠脚心丨vk| 一区二区高清视频在线观看| 国产伦精品一区二区三区在线观看 | 一本大道av伊人久久综合| 久久精品人人做人人爽97| 美女视频免费一区| 欧美亚日韩国产aⅴ精品中极品| 国产精品私人影院| 国产在线播放一区| 日韩欧美高清在线| 三级一区在线视频先锋| 欧美午夜电影网| 一区二区三区毛片| 91视频在线观看| 亚洲色图在线看| 97久久精品人人澡人人爽| 国产精品视频一区二区三区不卡| 精品一区二区三区免费| 日韩欧美在线网站| 免费观看在线综合| 4438x成人网最大色成网站| 亚洲午夜精品17c| 欧美性视频一区二区三区| 亚洲美女区一区| 日韩一区二区三区免费观看| 亚洲成人福利片| 3751色影院一区二区三区| 日韩**一区毛片|