久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 編程 > C++ > 正文

詳解C++編程的多態性概念

2020-05-23 14:14:22
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了C++編程的多態性概念,是C++入門學習中的基礎知識,需要的朋友可以參考下

多態性(polymorphism)是面向對象程序設計的一個重要特征。如果一種語言只支持類而不支持多態,是不能被稱為面向對象語言的,只能說是基于對象的,如Ada、VB就屬此類。C++支持多態性,在C++程序設計中能夠實現多態性。利用多態性可以設計和實現一個易于擴展的系統。

顧名思義,多態的意思是一個事物有多種形態。多態性的英文單詞polymorphism來源于希臘詞根poly(意為“很多”)和morph(意為“形態”)。在C ++程序設計中,多態性是指具有不同功能的函數可以用同一個函數名,這樣就可以用一個函數名調用不同內容的函數。在面向對象方法中一般是這樣表述多態性的:向不同的對象發送同一個消息, 不同的對象在接收時會產生不同的行為(即方法)。也就是說,每個對象可以用自己的方式去響應共同的消息。所謂消息,就是調用函數,不同的行為就是指不同的實現,即執行不同的函數。

其實,我們已經多次接觸過多態性的現象,例如函數的重載、運算符重載都是多態現象。只是那時沒有用到多態性這一專門術語而已。例如,使用運算符“+”使兩個數值相加,就是發送一個消息,它要調用operator +函數。實際上,整型、單精度型、雙精度型的加法操作過程是互不相同的,是由不同內容的函數實現的。顯然,它們以不同的行為或方法來響應同一消息。

在現實生活中可以看到許多多態性的例子。如學校校長向社會發布一個消息:9月1日新學年開學。不同的對象會作出不同的響應:學生要準備好課本準時到校上課;家長要籌集學費;教師要備好課;后勤部門要準備好教室、宿舍和食堂……由于事先對各種人的任務已作了規定,因此,在得到同一個消息時,各種人都知道自己應當怎么做,這就是 多態性。可以設想,如果不利用多態性,那么校長就要分別給學生、家長、教師、后勤部門等許多不同的對象分別發通知,分別具體規定每一種人接到通知后應該怎么做。顯然這是一件十分復雜而細致的工作。一人包攬一切,吃力還不討好。現在,利用了多態性機制,校長在發布消息時,不必一一具體考慮不同類型人員是怎樣執行的。至于各類人員在接到消息后應氣做什么,并不是臨時決定的,而是學校的工作機制事先安排決定好的。校長只需不斷發布各種消息,各種人員就會按預定方案有條不紊地工作。

同樣,在C++程序設計中,在不同的類中定義了其響應消息的方法,那么使用這些類 時,不必考慮它們是什么類型,只要發布消息即可。正如在使用運算符“ ”時不必考慮相加的數值是整型、單精度型還是雙精度型,直接使用“+”,不論哪類數值都能實現相加。可以說這是以不變應萬變的方法,不論對象千變萬化,用戶都是用同一形式的信息去調用它們,使它們根據事先的安排作出反應。

從系統實現的角度看,多態性分為兩類:靜態多態性和動態多態性。以前學過的函數重載和運算符重載實現的多態性屬于靜態多態性,在程序編譯時系統就能決定調用的是哪個函數,因此靜態多態性又稱編譯時的多態性。靜態多態性是通過函數的重載實現的(運算符重載實質上也是函數重載)。動態多態性是在程序運行過程中才動態地確定操作所針對的對象。它又稱運行時的多態性。動態多態性是通過虛函數(Virtual fiinction)實現的。

下面是一個承上啟下的例子。一方面它是有關繼承和運算符重載內容的綜合應用的例子,通過這個例子可以進一步融會貫通前面所學的內容,另一方面又是作為討論多態性的一個基礎用例。

希望大家耐心、深入地閱讀和消化這個程序,弄清其中的每一個細節。

[例] 先建立一個Point(點)類,包含數據成員x,y(坐標點)。以它為基類,派生出一個Circle(圓)類,增加數據成員r(半徑),再以Circle類為直接基類,派生出一個Cylinder(圓柱體)類,再增加數據成員h(高)。要求編寫程序,重載運算符“<<”和“>>”,使之能用于輸出以上類對象。

這個例題難度不大,但程序很長。對于一個比較大的程序,應當分成若干步驟進行。先聲明基類,再聲明派生類,逐級進行,分步調試。

1) 聲明基類Point

類可寫出聲明基類Point的部分如下:

 

  1. #include <iostream> 
  2. //聲明類Point 
  3. class Point 
  4. public
  5. Point(float x=0,float y=0); //有默認參數的構造函數 
  6. void setPoint(float ,float); //設置坐標值 
  7. float getX( )const {return x;} //讀x坐標 
  8. float getY( )const {return y;} //讀y坐標 
  9. friend ostream & operator <<(ostream &,const Point &); //重載運算符“<<” 
  10. protected//受保護成員 
  11. float x, y; 
  12. }; 
  13. //下面定義Point類的成員函數 
  14. Point::Point(float a,float b) //Point的構造函數 
  15. //對x,y初始化 
  16. x=a; 
  17. y=b; 
  18. void Point::setPoint(float a,float b) //設置x和y的坐標值 
  19. //為x,y賦新值 
  20. x=a; 
  21. y=b; 
  22. //重載運算符“<<”,使之能輸出點的坐標 
  23. ostream & operator <<(ostream &output, const Point &p) 
  24. output<<"["<<p.x<<","<<p.y<<"]"<<endl; 
  25. return output; 

以上完成了基類Point類的聲明。

為了提高程序調試的效率,提倡對程序分步調試,不要將一個長的程序都寫完以后才統一調試,那樣在編譯時可能會同時出現大量的編譯錯誤,面對一個長的程序,程序人員往往難以迅速準確地找到出錯位置。要善于將一個大的程序分解為若干個文件,分別編譯,或者分步調試,先通過最基本的部分,再逐步擴充。

現在要對上面寫的基類聲明進行調試,檢查它是否有錯,為此要寫出main函數。實際上它是一個測試程序。

 

  1. int main( ) 
  2. Point p(3.5,6.4); //建立Point類對象p 
  3. cout<<"x="<<p.getX( )<<",y="<<p.getY( )<<endl; //輸出p的坐標值 
  4. p.setPoint(8.5,6.8); //重新設置p的坐標值 
  5. cout<<"p(new):"<<p<<endl; //用重載運算符“<<”輸出p點坐標 
  6. return 0; 

getX和getY函數聲明為常成員函數,作用是只允許函數引用類中的數據,而不允許修改它們,以保證類中數據的安全。數據成員x和y聲明為protected,這樣可以被派生類訪問(如果聲明為private,派生類是不能訪問的)。

程序編譯通過,運行結果為:

 

 
  1. x=3.5,y=6.4 
  2. p(new):[8.5,6.8] 

測試程序檢查了基類中各函數的功能,以及運算符重載的作用,證明程序是正確的。

2)聲明派生類Circle

在上面的基礎上,再寫出聲明派生類Circle的部分:

 

 
  1. class Circle:public Point //circle是Point類的公用派生類 
  2. public
  3. Circle(float x=0,float y=0,float r=0); //構造函數 
  4. void setRadius(float ); //設置半徑值 
  5. float getRadius( )const//讀取半徑值 
  6. float area ( )const//計算圓面積 
  7. friend ostream &operator <<(ostream &,const Circle &); //重載運算符“<<” 
  8. private
  9. float radius; 
  10. }; 
  11. //定義構造函數,對圓心坐標和半徑初始化 
  12. Circle::Circle(float a,float b,float r):Point(a,b),radius(r){} 
  13. //設置半徑值 
  14. void Circle::setRadius(float r){radius=r;} 
  15. //讀取半徑值 
  16. float Circle::getRadius( )const {return radius;} 
  17. //計算圓面積 
  18. float Circle::area( )const 
  19. return 3.14159*radius*radius; 
  20. //重載運算符“<<”,使之按規定的形式輸出圓的信息 
  21. ostream &operator <<(ostream &output,const Circle &c) 
  22. output<<"Center=["<<c.x<<","<<c.y<<"],r="<<c.radius<<",area="<<c.area( )<<endl; 
  23. return output; 

為了測試以上Circle類的定義,可以寫出下面的主函數:

 

 
  1. int main( ) 
  2. Circle c(3.5,6.4,5.2); //建立Circle類對象c,并給定圓心坐標和半徑 
  3. cout<<"original circle://nx="<<c.getX()<<", y="<<c.getY()<<", r="<<c.getRadius( )<<", area="<<c.area( )<<endl; //輸出圓心坐標、半徑和面積 
  4. c.setRadius(7.5); //設置半徑值 
  5. c.setPoint(5,5); //設置圓心坐標值x,y 
  6. cout<<"new circle://n"<<c; //用重載運算符“<<”輸出圓對象的信息 
  7. Point &pRef=c; //pRef是Point類的引用變量,被c初始化 
  8. cout<<"pRef:"<<pRef; //輸出pRef的信息 
  9. return 0; 

程序編譯通過,運行結果為:

 

 
  1. original circle:(輸出原來的圓的數據) 
  2. x=3.5, y=6.4, r=5.2, area=84.9486 
  3. new circle:(輸出修改后的圓的數據) 
  4. Center=[5,5], r=7.5, area=176.714 
  5. pRef:[5,5] (輸出圓的圓心“點”的數據) 

可以看到,在Point類中聲明了一次運算符“ <<”重載函數,在Circle類中又聲明了一次運算符“ <<”,兩次重載的運算符“<<”內容是不同的,在編譯時編譯系統會根據輸出項的類型確定調用哪一個運算符重載函數。main函數第7行用“cout<< ”輸出c,調用的是在Circle類中聲明的運算符重載函數。

請注意main函數第8行:

 

 
  1. Point & pRef = c; 

定義了 Point類的引用變量pRef,并用派生類Circle對象c對其初始化。前面我們已經講過,派生類對象可以替代基類對象為基類對象的引用初始化或賦值(詳情請查看:C++基類與派生類的轉換)。現在 Circle是Point的公用派生類,因此,pRef不能認為是c的別名,它得到了c的起始地址, 它只是c中基類部分的別名,與c中基類部分共享同一段存儲單元。所以用“cout<

3) 聲明Circle的派生類Cylinder

前面已從基類Point派生出Circle類,現在再從Circle派生出Cylinder類。

 

 
  1. class Cylinder:public Circle// Cylinder是Circle的公用派生類 
  2. public
  3. Cylinder (float x=0,float y=0,float r=0,float h=0); //構造函數 
  4. void setHeight(float ); //設置圓柱高 
  5. float getHeight( )const//讀取圓柱高 
  6. loat area( )const//計算圓表面積 
  7. float volume( )const//計算圓柱體積 
  8. friend ostream& operator <<(ostream&,const Cylinder&); //重載運算符<< 
  9. protected
  10. float height;//圓柱高 
  11. }; 
  12. //定義構造函數 
  13. Cylinder::Cylinder(float a,float b,float r,float h):Circle(a,b,r),height(h){} 
  14. //設置圓柱高 
  15. void Cylinder::setHeight(float h){height=h;} 
  16. //讀取圓柱高 
  17. float Cylinder::getHeight( )const {return height;} 
  18. //計算圓表面積 
  19. float Cylinder::area( )const { return 2*Circle::area( )+2*3.14159*radius*height;} 
  20. //計算圓柱體積 
  21. float Cylinder::volume()const {return Circle::area()*height;} 
  22. ostream &operator <<(ostream &output,const Cylinder& cy) 
  23. output<<"Center=["<<cy.x<<","<<cy.y<<"],r="<<cy.radius<<",h="<<cy.height <<"//narea="<<cy.area( )<<", volume="<<cy.volume( )<<endl; 
  24. return output; 
  25. //重載運算符“<<” 

可以寫出下面的主函數:

 

 
  1. int main( ) 
  2. Cylinder cy1(3.5,6.4,5.2,10);//定義Cylinder類對象cy1 
  3. cout<<"//noriginal cylinder://nx="<<cy1.getX( )<<", y="<<cy1.getY( )<<", r=" 
  4. <<cy1.getRadius( )<<", h="<<cy1.getHeight( )<<"//narea="<<cy1.area() 
  5. <<",volume="<<cy1.volume()<<endl;//用系統定義的運算符“<<”輸出cy1的數據 
  6. cy1.setHeight(15);//設置圓柱高 
  7. cy1.setRadius(7.5);//設置圓半徑 
  8. cy1.setPoint(5,5);//設置圓心坐標值x,y 
  9. cout<<"//nnew cylinder://n"<<cy1;//用重載運算符“<<”輸出cy1的數據 
  10. Point &pRef=cy1;//pRef是Point類對象的引用變量 
  11. cout<<"//npRef as a Point:"<<pRef;//pRef作為一個“點”輸出 
  12. Circle &cRef=cy1;//cRef是Circle類對象的引用變量 
  13. cout<<"//ncRef as a Circle:"<<cRef;//cRef作為一個“圓”輸出 
  14. return 0; 

運行結果如下:

 

 
  1. original cylinder:(輸出cy1的初始值) 
  2. x=3.5, y=6.4, r=5.2, h=10 (圓心坐標x,y。半徑r,高h) 
  3. area=496.623, volume=849.486 (圓柱表面積area和體積volume) 
  4. new cylinder: (輸出cy1的新值) 
  5. Center=[5,5], r=7.5, h=15 (以[5,5]形式輸出圓心坐標) 
  6. area=1060.29, volume=2650.72(圓柱表面積area和體積volume) 
  7. pRef as a Point:[5,5] (pRef作為一個“點”輸出) 
  8. cRef as a Circle:Center=[5,5], r=7.5, area=176.714(cRef作為一個“圓”輸出) 

說明:在Cylinder類中定義了 area函數,它與Circle類中的area函數同名,根據前面我們講解的同名覆蓋的原則(詳情請查看:C++多重繼承的二義性問題),cy1.area( ) 調用的是Cylinder類的area函數(求圓柱表面積),而不是Circle類的area函數(圓面積)。請注意,這兩個area函數不是重載函數,它們不僅函數名相同,而且函數類型和參數個數都相同,兩個同名函數不在同 —個類中,而是分別在基類和派生類中,屬于同名覆蓋。重載函數的參數個數和參數類型必須至少有一者不同,否則系統無法確定調用哪一個函數。

main函數第9行用“cout<

main函數中最后4行的含義與在定義Circle類時的情況類似。pRef是Point類的引用變量,用cy1對其初始化,但它不是cy1的別名,只是cy1中基類Point部分的別名,在輸出pRef時是作為一個Point類對象輸出的,也就是說,它是一個“點”。同樣,cRef是Circle類的引用變量,用cy1對其初始化,但它只是cy1中的直接基類Circle部分的別名, 在輸出 cRef 時是作為Circle類對象輸出的,它是一個"圓”,而不是一個“圓柱體”。從輸 出的結果可以看出調用的是哪個運算符函數。

在本例中存在靜態多態性,這是運算符重載引起的(注意3個運算符函數是重載而不是同名覆蓋,因為有一個形參類型不同)。可以看到,在編譯時編譯系統即可以判定應調用哪個重載運算符函數。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
免费人成黄页网站在线一区二区| 一级肉体全黄裸片| 久久久久久国产精品mv| 国产成人精品一区| 91在线视频免费| 久久久久久欧美精品色一二三四| 久久99国产精品一区| 乌克兰美女av| av资源在线免费观看| 人妻中文字幕一区二区三区| 视频精品一区二区| 国产欧美日韩麻豆91| 午夜视黄欧洲亚洲| 日韩欧美在线网站| 另类视频在线观看| 国产成人精品久久久| 亚洲欧洲久久| 亚洲天堂伊人网| 久久久久久久久久99| 天堂在线视频免费观看| 国产亚洲自拍一区| 制服丝袜av成人在线看| 欧美日韩aaaa| 日韩精品电影网站| jizzzz日本| www.av视频在线观看| 老熟妇一区二区三区啪啪| 国产一区不卡在线| 91国产福利在线| 性欧美激情精品| 中文字幕av日韩精品| 国产一区二区黄色| 一二三区视频在线观看| av中文字幕免费| 洋洋成人永久网站入口| 色黄久久久久久| 亚洲国产综合自拍| 九九热久久免费视频| 另类调教123区 | 亚洲欧美一区二区视频| 日韩精品中文字幕久久臀| 成人欧美一区二区三区视频| 无码人妻丰满熟妇区毛片蜜桃精品 | 久久亚洲午夜电影| 中国极品少妇videossexhd| 亚洲小说欧美另类激情| 免费看污污视频| 欧美 日韩 国产 一区二区三区| 久久激情五月激情| 91精品国产综合久久国产大片| 91免费观看| 亚洲自拍偷拍图| 成人不卡免费av| 在线亚洲国产精品网| 日韩国产成人无码av毛片| 最近免费中文字幕大全免费版视频| 中文一区二区在线观看 | 日韩一区在线视频| 人妻久久久一区二区三区| 中文天堂在线资源| 精品人伦一区二区三区蜜桃网站| 国产精品极品美女在线观看免费| 国产一区二区在线观看免费视频| 美女在线视频一区| 中文字幕亚洲第一| 三上悠亚av一区二区三区| 日韩精品午夜视频| 日韩在线资源网| 国产婷婷在线观看| 久久无码av三级| 国产精品国语对白| 翔田千里88av中文字幕| 久久精品无码av| 无码国产色欲xxxx视频| 亚洲国产中文字幕在线观看| 乱熟女高潮一区二区在线| 久久精品系列| 美日韩精品免费观看视频| 国产一区二区视频播放| 国产成a人亚洲精v品无码| 亚洲天堂男人天堂| 韩国三级在线看| 亚洲色图在线看| 欧美精品七区| a在线观看免费| 欧美尺度大的性做爰视频| 亚洲女优在线观看| 在线国产亚洲欧美| 福利在线小视频| 美腿丝袜在线亚洲一区 | 韩国黄色一级片| 久久久午夜电影| 色偷偷偷亚洲综合网另类| 成人免费毛片日本片视频| 亚洲免费观看在线观看| 欧洲久久久久久| 午夜在线视频观看| 久久久久九九九九| 国产精品视频看看| 欧美一区二区三区在线电影 | 2018天天弄| 国产免费福利视频| 亚洲天堂av在线免费| 手机版av在线| 2023国产精品| 99久久99久久| 夜夜爽8888| 亚洲韩国欧洲国产日产av| 日韩在线视频网站| 国产av麻豆mag剧集| 国产高清一区日本| 国产激情999| 亚洲第一网站在线观看| 日韩欧美中文一区| 中文字幕 日韩 欧美| 国产精品国产三级国产普通话三级| 欧美日韩亚洲在线| 日韩精品高清不卡| 国产精品对白刺激久久久| 欧性猛交ⅹxxx乱大交| 91成人福利在线| 99久久久无码国产精品不卡| 日韩色在线观看| 国产激情av在线| 中文字幕欧美日韩在线| 欧美成人aaaaⅴ片在线看| 在线日韩精品视频| 欧美亚洲色综久久精品国产| 亚洲福利视频网站| 亚洲天堂黄色片| 中文字幕视频一区二区在线有码| 一本加勒比北条麻妃| 一本色道久久综合狠狠躁篇的优点 | 精品人妻少妇AV无码专区| 91精品国产高清自在线看超| 国产理论视频在线观看| 成人国产一区二区| 久久色视频免费观看| 国产日本欧美在线| 亚洲精品中文字幕乱码三区| 免费无遮挡无码永久视频| 偷拍一区二区三区四区| 可以直接看的无码av| 日韩精品免费看| 欧美日韩 一区二区三区| 成人精品视频在线| 91麻豆文化传媒在线观看| 亚洲精品久久区二区三区蜜桃臀| 99精品视频中文字幕| 亚洲欧美日韩一级| 天堂在线观看免费视频| 国内精品二区| 一区二区在线电影| 男女全黄做爰文章| 91视频99| 亚洲午夜久久久久久久久电影院| 日本美女视频网站| 欧美精品videos另类日本| 蜜桃av一区二区三区电影| 任你操这里只有精品| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 国产性生交xxxxx免费| 欧美一级xxx| 日本少妇裸体做爰| 国产欧美精品一区二区三区介绍| 99视频在线精品| 人妻体体内射精一区二区| 一本色道久久综合狠狠躁篇的优点| 麻豆91精品视频| 精品少妇一区二区三区免费观| 成人精品久久久| 国产精品毛片久久久久久| 超碰人人cao| 日韩一二三区视频| 免费观看毛片网站| 狠狠精品干练久久久无码中文字幕 | www.日本精品| 综合操久久久| 精品国产自在精品国产浪潮| 国产精品一二三区| 一区二区三区韩国| 欧美日免费三级在线| 欧美性猛交xxxx乱大交91| 亚洲一区二区少妇| 欧美成人h版在线观看| 亚洲一区免费视频| 久久精品国产亚洲AV无码男同 | 热久久精品国产| 毛片精品免费在线观看| 欧美性猛交bbbbb精品| 久久精子c满五个校花| 97中文字幕在线观看| 国产亚洲欧美日韩精品| 无码人妻精品一区二区三区不卡| 97人洗澡人人免费公开视频碰碰碰| www.综合色| 国产精品成人免费视频| 国产富婆一级全黄大片| 久久国产精品免费一区| 亚洲自拍偷拍九九九| 国产成人av一区二区三区不卡| 欧美日本亚洲视频| 国产精品午夜久久| 日本三级中文字幕| 日韩精品xxxx| 亚洲色图国产精品| 国产精品正在播放| www.欧美com| 欧美激情精品久久久久久变态| 99热这里只有精品在线观看| 欧美视频在线播放一区| 亚洲码在线观看| 国产综合久久久久影院| 亚洲一级av无码毛片精品| 欧美一区二区三区电影在线观看| 亚洲一区二区三区在线看| 一区二区日韩视频| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 狠狠色噜噜狠狠色综合久| 91精品国产综合久久精品性色| 99久久久无码国产精品免费| 亚洲欧美日韩三级| 久精品免费视频| 这里只有精品99re| 久久精品91| av高清一区二区| 国产精品∨欧美精品v日韩精品| 国产性做久久久久久| 日本高清不卡免费| 日韩最新中文字幕| 精品国一区二区三区| 99精品国产热久久91蜜凸| 国产xxxx视频| 国产综合色一区二区三区| 亚洲国产精品大全| 成人av网站在线观看免费| 精品久久免费视频| 免费国产黄色网址| 91国产视频在线| 欧美午夜片欧美片在线观看| 老**午夜毛片一区二区三区| 国产国语性生话播放| 亚洲精品在线免费| 亚洲性视频网站| 尤物av一区二区| 国产免费黄色大片| 人妻丰满熟妇av无码久久洗澡| 欧美日韩精品免费观看视一区二区| 中文字幕日本精品| 亚洲免费伊人电影| 日韩黄色在线观看| 级毛片内射视频| 50度灰在线观看| 91av在线免费观看| 日韩一二在线观看| 国产欧美一区视频| 国产农村妇女毛片精品久久| 色婷婷精品久久二区二区密| 手机福利在线视频| 韩国日本不卡在线| 91精品视频网| 国产麻豆成人精品| 中文字幕自拍偷拍| 欧美 亚洲 视频| 浅井舞香一区二区| 日韩成人av在线| 亚洲激情av在线| 精品在线播放免费| caoporn国产| 无码人妻aⅴ一区二区三区 | 欧美午夜精品久久久久久浪潮| 日韩电影在线免费看| 中文在线观看免费网站| 一路向西2在线观看| 四虎影院一区二区三区| 7m第一福利500精品视频| 亚洲国产一区二区三区在线观看| 国产精品久久久久永久免费观看 | 亚洲视频狠狠干| 日本视频一区二区三区| 青青草免费av| 一区二区在线免费观看视频| 99精品视频网站| 国产精品爽黄69| 伊人激情综合网| 午夜在线电影亚洲一区| 久久综合色综合88| 你懂的网站在线| 在线观看国产亚洲| 亚洲蜜桃精久久久久久久久久久久| 欧美精品99久久| 不卡一卡2卡3卡4卡精品在| 久久久久久有精品国产| 欧美日韩国产天堂| 亚洲欧美电影一区二区| 成人综合婷婷国产精品久久免费| 精品人妻伦一二三区久久| 久久精品国产亚洲av高清色欲| 香蕉视频色在线观看| 免费看一级大黄情大片| 开心色怡人综合网站| 国产精品久久久久久久久久久不卡| 亚洲欧美在线一区| 日韩亚洲欧美综合| 在线观看视频一区二区欧美日韩| 国产三级精品三级| 国产不卡在线播放| 欧美少妇bbw| 黄色av一区二区| 黑人狂躁日本娇小| 青青草视频成人| 91插插插影院| 干日本少妇首页| 老司机激情视频| 久久精品人成| 亚洲自拍偷拍在线| 国产精品mp4| 欧美激情综合色| 日韩日本欧美亚洲| 亚洲高清不卡av| 精品美女在线播放| 亚洲在线观看免费视频| www一区二区| 不卡大黄网站免费看| 麻豆精品国产91久久久久久| 成人无码一区二区三区| 特级西西444www高清大视频| 欧美黑人一区二区| www.午夜av| 8x8x最新地址| 国内自拍视频网| 青青草原成人网| 国产免费黄色小视频| 裸模一区二区三区免费| 国产精品一区而去| 国产区二精品视| 亚洲一区二区三区视频| 92国产精品久久久久首页| 国产精品视频久久| 国产热re99久久6国产精品| 欧美资源在线观看| 日本精品性网站在线观看| 91精品国产综合久久精品图片| 欧美日精品一区视频| 欧美日韩亚洲综合在线| 欧美亚洲一区二区在线观看| 欧美日韩在线免费视频| 91国偷自产一区二区三区成为亚洲经典 | 欧美激情一区二区视频| 精品一区二区视频在线观看| 欧美xxxx黑人| 国产中文字幕一区二区| 天堂久久久久久| av黄色在线免费观看| 日本精品人妻无码77777| 亚洲视频重口味| 国产女同在线观看| wwwxxx亚洲| 888奇米影视| 少妇高潮一区二区三区99小说 | 国产人妻精品久久久久野外| 红桃视频一区二区三区免费| 精品视频高清无人区区二区三区| 99中文字幕| 国产精品三区四区| 麻豆成人av| 无颜之月在线看| 亚洲 欧美 综合 另类 中字| aaaaaa亚洲| 又色又爽又黄18网站| 波多野结衣视频播放| 成人做爰视频网站| 狠狠人妻久久久久久综合| 91成人国产综合久久精品| 视频一区二区免费| 国产在线精品一区二区不卡了| 91麻豆高清视频| 亚洲愉拍自拍另类高清精品| 色哟哟精品一区| 精品国产乱码久久久久久闺蜜| 色综合天天综合网天天狠天天| 欧美一卡二卡三卡四卡| 亚洲午夜精品视频| 久热精品视频在线观看| 国产精品久久电影观看| 老牛影视免费一区二区| 超碰10000| 日本女人性视频| 亚洲成年人在线观看| 老湿机69福利| a在线观看视频| 精品亚洲成av人在线观看| 欧美激情一区二区在线| 在线亚洲精品福利网址导航| 欧美mv日韩mv亚洲| 久久男人的天堂| 欧美在线视频免费播放| 狠狠色噜噜狠狠色综合久| heyzo亚洲| 理论片大全免费理伦片| 日韩美女黄色片| 亚洲av成人无码网天堂| 久久精品av麻豆的观看方式| 成人h视频在线| 激情成人综合网| 精品一区二区成人免费视频| 免费中文日韩| 麻豆成人综合网| 日本成人看片网址| 精品国产污网站|