亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > C++ > 正文

不要被C++(自動(dòng)生成規(guī)則)所蒙騙

2020-01-26 16:22:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C++對(duì)象可以使用兩種方式進(jìn)行創(chuàng)建:構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù)。假如我們定義了類A,并使用它創(chuàng)建對(duì)象。

復(fù)制代碼 代碼如下:

A a,b;
A c=a;
A d(b);

對(duì)象a和b使用編譯器提供的默認(rèn)構(gòu)造函數(shù)A::A()創(chuàng)建出來(lái),我們稱這種創(chuàng)建方式為對(duì)象的定義(包含聲明的含義)。對(duì)象c和d則是使用已有的對(duì)象,通過(guò)編譯器提供的復(fù)制構(gòu)造函數(shù)A::A(const A&)創(chuàng)建,我們稱這種創(chuàng)建方式為對(duì)象的初始化(包含定義和聲明的含義)。

可能不少人會(huì)把對(duì)象的初始化和對(duì)象的賦值混淆,比如。

復(fù)制代碼 代碼如下:

c=d;

這里把對(duì)象d賦值給對(duì)象c并非創(chuàng)建新的對(duì)象,它不會(huì)調(diào)用任何構(gòu)造函數(shù)。編譯器默認(rèn)提供的賦值運(yùn)算符重載函數(shù)const A&operator=(const A&)為該語(yǔ)句提供支持。

編譯器除了提供默認(rèn)構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)和賦值運(yùn)算符重載函數(shù)之外,有可能還為我們提供了析構(gòu)函數(shù)A::~A(),但是這里的析構(gòu)函數(shù)并不是virtual的(相信會(huì)有童鞋忘記這一點(diǎn))。

這些基礎(chǔ)的語(yǔ)法對(duì)學(xué)習(xí)過(guò)C++的人或許并不陌生,我們自從學(xué)習(xí)了面向?qū)ο驝++后,一直都知道編譯器為我們提供了這樣的便利條件。經(jīng)過(guò)多年的編程實(shí)踐和體驗(yàn),我們絕對(duì)相信編譯器的確為我們做了這些工作,因?yàn)槲覀儧](méi)有遇到過(guò)任何問(wèn)題。甚至我們腦子中會(huì)默認(rèn)形成一個(gè)概念――即使我定義了一個(gè)空類(類內(nèi)什么都沒(méi)有),編譯器依然會(huì)“乖乖的”為我們生成上邊所說(shuō)的四個(gè)函數(shù)。

如果你真的形成了這種觀念的話,那么恭喜你,因?yàn)槟阋呀?jīng)將C++基本規(guī)則運(yùn)用的十分熟練了。同時(shí)遺憾的是你我都看到了冰山一角,編譯器的工作方式遠(yuǎn)不像我們使用它的那樣。讀者可能會(huì)疑問(wèn),難道編譯器沒(méi)有生成這些函數(shù)嗎?答:要看你類的定義。那么編譯器到底如何生成這些函數(shù)呢?和我一樣又好奇心的人都想一探究竟,而這些內(nèi)容在《Inside The C++ Object Model》被詮釋的比較徹底。筆者也通過(guò)“借花獻(xiàn)佛”的方式將該書所描述的對(duì)象構(gòu)造的內(nèi)幕結(jié)合個(gè)人的理解和大家一起分享。

首先我們從最簡(jiǎn)單的談起,編譯器為類生成構(gòu)造函數(shù)了嗎?如果按照上邊描述的例子,只有一個(gè)空的類定義的話,我們可以肯定的說(shuō)――沒(méi)有。對(duì)編譯器這樣的做法,我們不必感到驚訝。試想一個(gè)空的類――沒(méi)有數(shù)據(jù)成員,沒(méi)有成員函數(shù),即使生成了構(gòu)造函數(shù)又能做什么呢?即便是生成了,也只是一個(gè)空構(gòu)造函數(shù)而已。

復(fù)制代碼 代碼如下:

A(){}

它什么也做不了,也什么都不必做。更“悲劇”,它的出現(xiàn)不僅沒(méi)有任何積極意義,還會(huì)為編譯器和程序運(yùn)行增加完全不必要的函數(shù)調(diào)用負(fù)擔(dān)。

既然如此,我們讓這個(gè)類再?gòu)?fù)雜一點(diǎn),我們?yōu)樗黾訑?shù)據(jù)成員和成員函數(shù),比如下邊這段代碼(我們記它為例子1)。

復(fù)制代碼 代碼如下:

class A
{
public:
int var;
void fun(){}
};

即便如此,結(jié)果還是和上邊的一樣,不生成構(gòu)造函數(shù)!因?yàn)闆](méi)有任何理由對(duì)var初始化,況且編譯器也不知道用什么值給它初始化。

果然,在主函數(shù)內(nèi)定義對(duì)象a后,沒(méi)有任何構(gòu)造函數(shù)被調(diào)用。

有人可能會(huì)說(shuō)用0初始化不行嗎?這只是我們的“一廂情愿”而已。一個(gè)沒(méi)有初始化的變量本身的值就可以是不確定的,何必要生成一個(gè)沒(méi)有任何意義的初始化為0的語(yǔ)句呢。

編譯器到底怎樣才能生成構(gòu)造函數(shù)呢?!或許你和我一樣有點(diǎn)“抓狂”了。不過(guò)現(xiàn)在還不是絕望的時(shí)候,因?yàn)榫幾g器需要我們給它一個(gè)“正當(dāng)?shù)睦碛伞鄙蓸?gòu)造函數(shù)。有四個(gè)正當(dāng)?shù)睦碛?,讓編譯器不得不生成構(gòu)造函數(shù),這里一一介紹。

首先,我們修改一下var的類型。這里假設(shè)它不是內(nèi)置類型int,而是一個(gè)定義好的類B。

B var;

修改一下數(shù)據(jù)成員的類型為自定義類型能影響編譯器的抉擇嗎?答:可能。這要看類B有沒(méi)有定義構(gòu)造函數(shù)。讀者可能有點(diǎn)明白了,是的,如果B沒(méi)有定義構(gòu)造函數(shù)(和這里的A一個(gè)樣子),那么編譯器仍然沒(méi)有理由生成構(gòu)造函數(shù)――為B初始化什么呢?反之,B一旦定義了默認(rèn)構(gòu)造函數(shù)B::B(),即便它是空的,編譯器就不得不為A創(chuàng)建默認(rèn)構(gòu)造函數(shù)了(這里不考慮編譯器的深度優(yōu)化)。因?yàn)锳的對(duì)象需要用B的默認(rèn)構(gòu)造函數(shù)初始化它自己的成員var,雖然B的構(gòu)造函數(shù)什么也沒(méi)做。因?yàn)榫幾g器不能假定B的構(gòu)造函數(shù)做了什么樣的操作(極端一點(diǎn):萬(wàn)一修改了一個(gè)全局變量了呢?),因此編譯器有絕對(duì)的必要生成A的構(gòu)造函數(shù),保證B類型的數(shù)據(jù)成員的構(gòu)造函數(shù)正常執(zhí)行。

轉(zhuǎn)到編譯器為A生成的構(gòu)造函數(shù)處,我們發(fā)現(xiàn)了B的構(gòu)造函數(shù)被調(diào)用的語(yǔ)句(選中行)。

當(dāng)然,如果B提供了構(gòu)造函數(shù),但不是默認(rèn)的構(gòu)造函數(shù),那么必須要程序員介入為var初始化,否則編譯器就不客氣了――error!

因此,編譯器生成默認(rèn)構(gòu)造函數(shù)的第一個(gè)正當(dāng)理由是――類內(nèi)數(shù)據(jù)成員是對(duì)象,并且該對(duì)象的類提供了一個(gè)默認(rèn)構(gòu)造函數(shù)。

現(xiàn)在,我們回到例子1,這里我們不修改var的類型,而是讓A繼承于另一個(gè)類C。

復(fù)制代碼 代碼如下:

class A:public C

我們都知道,在C++構(gòu)造函數(shù)初始化語(yǔ)法中,構(gòu)造函數(shù)會(huì)先初始化基類C,再初始化自身的數(shù)據(jù)成員或者對(duì)象。因此,這里的問(wèn)題和對(duì)象成員var類似。如果基類C沒(méi)有提供任何構(gòu)造函數(shù),那么編譯器仍然不提供A的默認(rèn)構(gòu)造函數(shù)。如果C提供了默認(rèn)構(gòu)造函數(shù),結(jié)果和前邊類似。

結(jié)果不出所料,編譯器為A生成了構(gòu)造函數(shù),并且調(diào)用了基類C定義的默認(rèn)構(gòu)造函數(shù)。同樣,若C沒(méi)有提供默認(rèn)默認(rèn)構(gòu)造函數(shù),而提供了其他構(gòu)造函數(shù),編譯是無(wú)法通過(guò)的。

這也是編譯器生成默認(rèn)構(gòu)造函數(shù)的第二個(gè)正當(dāng)理由――類的基類提供了默認(rèn)的構(gòu)造函數(shù)

我們?cè)俅位氐嚼?,這次我們修改成員函數(shù)fun。

復(fù)制代碼 代碼如下:

virtual void fun(){}

我們把類A的成員函數(shù)fun修改為虛函數(shù),再次看看是否產(chǎn)生了默認(rèn)構(gòu)造函數(shù)。

這次編譯器“毫不客氣”的為A生成了默認(rèn)構(gòu)造函數(shù),雖然它沒(méi)有調(diào)用任何其他的構(gòu)造函數(shù)!這是什么原因呢?原來(lái),C++為了實(shí)現(xiàn)多態(tài)機(jī)制,需要為類維護(hù)一個(gè)虛函數(shù)表(vftable),而每個(gè)該類的對(duì)象都保存一個(gè)指向該虛函數(shù)表的一個(gè)指針(一般保存在對(duì)象最開始的四個(gè)四節(jié)處,多態(tài)機(jī)制的實(shí)現(xiàn)這里暫不介紹)。編譯器為A生成構(gòu)造函數(shù),其實(shí)不為別的,就為了保證它定義的對(duì)象都要正常初始化這個(gè)虛函數(shù)表的指針(vfptr)!

好了,因此我們得出編譯器生成默認(rèn)構(gòu)造函數(shù)的第三個(gè)正當(dāng)理由――類內(nèi)定義了虛函數(shù)。這里可能還涉及一個(gè)更復(fù)雜點(diǎn)的情況:類內(nèi)本身沒(méi)有定義虛函數(shù),但是繼承了基類的虛函數(shù)。其實(shí)按照上述的原則,我們可以推理如下:基類既然定義了虛函數(shù),那么基類本身就需要生成默認(rèn)構(gòu)造函數(shù)初始化它本身的虛函數(shù)表指針。而基類一旦產(chǎn)生了默認(rèn)構(gòu)造函數(shù),派生類就需要產(chǎn)生默認(rèn)構(gòu)造函數(shù)調(diào)用它。同時(shí),如果讀者對(duì)多態(tài)機(jī)制了解清除的話,派生類在生成的默認(rèn)構(gòu)造函數(shù)內(nèi)還會(huì)初始化一次這個(gè)虛函數(shù)表指針的。

最后,我們?cè)俅位氐嚼?,這次仍然讓A繼承于C,但是這次C是一個(gè)空類――什么都沒(méi)有,也不會(huì)自動(dòng)生成默認(rèn)構(gòu)造函數(shù)。但是A繼承C的方式要變化一下。

復(fù)制代碼 代碼如下:

class A:public virtual C

A虛繼承于C,這次又有什么不同呢?

這次編譯器也生成了A的構(gòu)造函數(shù),并且初始化過(guò)程和虛函數(shù)時(shí)有點(diǎn)類似。細(xì)心觀察下發(fā)現(xiàn),這次構(gòu)造函數(shù)也初始化了一張表――vbtable。了解虛繼承機(jī)制的讀者應(yīng)該不會(huì)陌生,這張表叫虛基類表,它記錄了類繼承的所有的虛基類子對(duì)象在本類定義的對(duì)象內(nèi)的偏移位置(至于虛繼承機(jī)制的實(shí)現(xiàn),我們以后詳細(xì)探討)。為了保證虛繼承機(jī)制的正確工作,對(duì)象必須在初始化階段維護(hù)一個(gè)指向該表的一個(gè)指針,稱為虛表指針(vbptr)。編譯器因?yàn)樗峁〢的默認(rèn)構(gòu)造函數(shù)的理由和虛函數(shù)時(shí)類似。

這樣,我們得出編譯器生成默認(rèn)構(gòu)造函數(shù)的第四個(gè)正當(dāng)理由――類使用了虛繼承

到這里,我們把編譯器為類生成默認(rèn)構(gòu)造函數(shù)的正當(dāng)理由闡述完畢,相信大家應(yīng)該對(duì)構(gòu)造函數(shù)的生成時(shí)機(jī)有了一個(gè)大致的認(rèn)識(shí)。這四種“正當(dāng)理由”其實(shí)是編譯器不得不為類生成默認(rèn)構(gòu)造函數(shù)的理由,《Inside The C++ Object Model》里稱這種理由為nontrival的(候sir翻譯的很別扭,所以怎么翻譯隨你啦)。除了這四種情況外,編譯器稱為trival的,也就是沒(méi)有必要為類生成默認(rèn)構(gòu)造函數(shù)。這里討論的構(gòu)造函數(shù)生成準(zhǔn)則的內(nèi)容是寫進(jìn)C++Standard的,如此看來(lái)標(biāo)準(zhǔn)就是“貼合正常思維”的一套準(zhǔn)則(簡(jiǎn)單YY一下),其實(shí)本就是這樣,編譯器不應(yīng)該為了一致化做一些沒(méi)有必要的工作。

通過(guò)對(duì)默認(rèn)構(gòu)造函數(shù)的討論,相信大家對(duì)復(fù)制構(gòu)造函數(shù)、賦值運(yùn)算符重載函數(shù)、析構(gòu)函數(shù)的生成時(shí)機(jī)應(yīng)該可以自動(dòng)擴(kuò)展了。沒(méi)錯(cuò),它們遵循著一個(gè)最根本的原則:只有編譯器不得不為這個(gè)類生成函數(shù)的時(shí)候(nontrival),編譯器才會(huì)真正的生成它

因此,正如標(biāo)題所說(shuō),我們不要被C++語(yǔ)法中所描述的那些條條框框所“蒙騙”了。的確,相信這些生成規(guī)則不會(huì)對(duì)我們的編程帶來(lái)多大的影響(不會(huì)產(chǎn)生錯(cuò)誤),但是只有了解它們的背后操作,我們才知道編譯器究竟為我們做了什么,我們才知道如何使用C++才能讓它變得更有效率――比如消除不必要的構(gòu)造和虛擬機(jī)制等(如果可以的話)。相信本文對(duì)C++自動(dòng)生成的內(nèi)容的描述讓不少人認(rèn)清對(duì)象構(gòu)造函數(shù)產(chǎn)生的前因后果,希望本文對(duì)你有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲蜜臀av乱码久久精品蜜桃| 成人精品在线观看| 天天干人人干| 在线日本成人| 超碰在线一区| 国产自产2019最新不卡| 高h震动喷水双性1v1| 国产一区二区三区四区二区| 国精产品一区二区三区| 亚洲人成啪啪网站| 久久久久99精品成人片三人毛片| 在线免费一区二区| 在线免费视频福利| 97aⅴ精品视频一二三区| 最近2019中文字幕大全第二页| 国产精品99精品无码视亚| 7777精品伊久久久大香线蕉语言| 欧美在线免费看视频| 偷窥韩漫第三季| 精品久久久久久久中文字幕| 欧美精品一区二区三区蜜桃视频| 欧美大片1688| 日日噜噜噜噜久久久精品毛片| 日本搞黄视频| 亚洲精品tv久久久久久久久久| 欧美日韩视频精品一区二区| 亚洲国产精品尤物yw在线观看| 欧美最猛性xxxxx亚洲精品| 91av在线免费视频| 精品国产一区在线| 黑人巨大精品欧美黑白配亚洲| 口述被爽到呻吟高潮自述| 中文字幕日本一区| 日本50路肥熟bbw| 美国av一区二区三区| 国产91成人video| 欧美理论电影在线精品| 久久久三级国产网站| 天天看天天操| 看全色黄大色大片免费久久久| 97免费高清电视剧观看| 久久人人爽国产| 久久久999精品| 亚洲福利视频一区| 综合伊人久久| 超碰成人在线免费观看| 欧美在线免费播放| 国内自拍视频在线看免费观看| 国产无码精品在线播放| 成人女同在线观看| 久久伊人资源站| 久草免费福利在线| 黄色国产网站在线观看| 中文字幕亚洲一区二区三区| 91精品国产麻豆国产在线观看| 国精品无码人妻一区二区三区| 国产极品嫩模在线观看91精品| 99热国内精品永久免费观看| 免费看黄色aaaaaa 片| 日本vs亚洲vs韩国一区三区二区| 国产chinasex对白videos麻豆| 午夜不卡影院| 欧美日韩一区在线视频| 午夜一级久久| 91午夜理伦私人影院| 一区二区免费在线播放| www.在线观看av| 巨乳女教师的诱惑| 亚洲白拍色综合图区| 在线一区观看| 最好看的2019的中文字幕视频| 日韩精品中文字幕第1页| 国产精品九九视频| 国产精品盗摄久久久| 久久精品理论片| 国产极品视频| 91伊人久久大香线蕉| 久久久久香蕉视频| 成人性生交大片免费看在线播放| 日本欧美肥老太交大片| 日韩小视频网址| 91一区二区三区在线播放| 大美女一区二区三区| 91亚洲精华国产精华精华液| 久久久久九九九九| 欧美人妻精品一区二区免费看| 久久嫩草精品久久久精品一| 美女露隐私免费网站| 激情综合丁香| 久久久久久久999精品视频| 中文字幕欧美日韩一区二区| 欧美激情综合亚洲一二区| 在线观看av资源| 日本xxx免费| 国产精品中文字幕在线| 日韩欧美在线观看免费| 97欧美精品一区二区三区| 国产精品99久久久久久动医院| 久久影音资源网| 日韩精品美女| 精品一区二区成人免费视频| 日韩精品――中文字幕| 国产女人18毛片18精品| 国产99视频精品免视看7| 91中文在线观看| 午夜精品福利一区二区三区蜜桃| 久久av色综合| 日韩在线视频免费观看高清中文| av电影在线不卡| 野外性满足hd| 久久色免费在线视频| 网曝门事件国产精品二区| 视频一区在线视频| 中文字幕在线观看播放| 国产污视频在线看| 亚洲aⅴ网站| 女女同性女同一区二区三区91| 午夜网站在线观看| 国产精品无码一本二本三本色| 日本在线观看一区二区三区| 伊人春色之综合网| 日韩成人精品| 97视频在线观看免费| 久久综合色占| 日本aⅴ精品一区二区三区| 成人噜噜噜噜| 日韩黄色三级在线观看| 老司机一区二区| jizzjizzjizz亚洲女| 黄色网页免费在线观看| 香蕉免费一区二区三区在线观看| 人妻精油按摩bd高清中文字幕| 在线观看欧美日韩电影| 国产精品欧美激情在线| 天天综合网天天| 另类专区亚洲| 中文字幕一区在线播放| 国产小视频精品| 国产福利小视频| 亚洲精品视频观看| 成人免费视频视频| 成人福利一区| 欧美国产一区二区三区激情无套| 欧美男男gaygay1069| 玖玖精品在线视频| 制服诱惑一区| 精品国产亚洲一区二区三区在线观看| 国产三级在线观看| 日韩 国产 欧美| 亚洲午夜精品一区二区三区| 亚洲国产日韩欧美一区二区三区| 免费黄色在线视频| 欧美日韩色婷婷| 国产精品电影久久久久电影网| 69堂免费精品视频在线播放| 免费成人你懂的| 欧美极度另类videos高清| 伊人国产视频| 五月天久久狠狠| 日韩和欧美一区二区| 欧美在线激情视频| 免费在线国产精品| 伊人网伊人影院| 国产精品亚洲аv天堂网| 成人手机在线免费视频| 你懂的国产精品永久在线| www成人在线| 亚洲国产精品热久久| 丝袜a∨在线一区二区三区不卡| 欧美日韩亚洲精品内裤| 色婷婷在线观看视频| 91狠狠综合久久久久久| 欧美自拍电影| ass白嫩白嫩的小美女| 成人三级小说| 六月婷婷久久| 污污网站免费观看| 日韩av电影院| 亚洲午夜精品久久久久久久久| 国产福利视频一区二区| 欧美美女黄色网| 国产精品免费91| 久久精品夜夜夜夜夜久久| 成人黄动漫网站免费| 夜夜嗨av一区二区三区四季av| 日韩成人在线电影网| 国产精品视频男人的天堂| 成年人网站免费看| 欧美人与物videos另类| 在线观看日本网站| 欧美一级高清片| 538在线精品| 欧美诱惑福利视频| 日韩成人激情在线| 51xtv成人影院| 日韩高清一二三区| 国产精品偷伦视频免费观看了| 欧美极品少妇videossex| 欧美丝袜丝交足nylons| 国产ts丝袜人妖系列视频| 国产三级av在线播放| 国产午夜亚洲精品午夜鲁丝片| 天天干视频在线| 亚洲日本aⅴ片在线观看香蕉| 国产精品久久久高清免费| 国产高清自拍99| 男人的天堂一区二区| 91精品国产入口在线| 欧美一级鲁丝片| 日本小视频在线免费观看| 国产精品白丝在线| 亚洲精品中文字幕乱码| 神马影视一区二区| 亚洲欧美日本伦理| 丁香六月天婷婷| 日本午夜视频在线观看| 国产福利电影在线观看| 日韩精品亚洲aⅴ在线影院| 欧美一区二区大胆人体摄影专业网站| 亚洲在线色站| 午夜精产品一区二区在线观看的| 一级黄色片播放| 4438x成人网全国最大| 午夜精品久久久久久久第一页按摩| 蜜桃久久av一区| 国内精品久久久久久久影视麻豆| 久久中文字幕人妻| 999精品色在线播放| 免费看日批视频| 新版中文字幕在线资源| 18岁成人毛片| 日本激情视频在线播放| 亚洲色图欧美自拍| 在线观看免费视频国产| 中文字幕乱码日本亚洲一区二区| 国产精品亲子伦av一区二区三区| 国产精品99999| 伊人久久男人天堂| 成人爽a毛片免费啪啪红桃视频| 亚洲精品天堂网| 欧美三级韩国三级日本三斤在线观看| 成人黄色av播放免费| 日产国产欧美视频一区精品| 精品久久久久av| 午夜欧美精品久久久久久久| 在线日韩av永久免费观看| 中国a一片一级一片| 亚洲小说图片区| 亚洲人成五月天| 96pao国产成视频永久免费| 久久精品99久久无色码中文字幕| 亚洲一区二区三区免费在线观看| 日韩一级片免费视频| 91成人精品| 中文字幕字幕中文在线中不卡视频| 毛片视频免费播放| 99精彩视频在线观看免费| 91福利精品第一导航| 中文成人综合网| 成人午夜精品在线| 成人免费a**址| 成人在线视频你懂的| 中文字幕在线免费不卡| 国产精品三级电影| 国产又粗又猛又黄又爽| 亚洲欧洲一区二区在线播放| 日韩男人的天堂| 理论片大全免费理伦片| 久久精品国内一区二区三区| 国产91色在线观看| 亚洲视频小说| 伊人久久大香线蕉综合网蜜芽| 草裙成人精品一区二区三区| 欧美精品www在线观看| 免费福利影院| 中文字幕 国产精品| 99久久伊人久久99| 亚洲美女网站18| 懂色av噜噜一区二区三区av| 疯狂做受xxxx欧美肥白少妇| 9191国产视频| 日本亚洲免费观看| 亚洲一区二区三区在线播放| 欧美日韩精品一本二本三本| 国产精品入口免费麻豆| 欧美两根一起进3p做受视频| 丁香花在线高清完整版视频| 在线观看国产免费视频| 亚洲制服丝袜av| 一级片avav网址| 亚洲成人在线视频网站| 亚洲国产日韩一区无码精品久久久| 亚洲人免费视频| 九色综合狠狠综合久久| 欧美激情1区2区3区| 色噜噜久久综合| 欧美激情一区二区久久久| 日韩精品极品视频免费观看| 91丝袜一区二区三区| 8mav在线| 国产对白在线播放| 久久综合九色综合97婷婷| 中文字幕在线中文字幕日亚韩一区| 亚洲av无码久久精品色欲| 日韩av加勒比| 国产亚洲精品久| 日本一区二区成人在线| 青青青青久久精品国产一百度| 亚洲国产成人私人影院tom| 黄色国产在线播放| 法国空姐在线观看免费| 亚洲一区二区毛片| youjizzjizz亚洲| 中文字幕在线观看第二页| 黄色免费成人| 欧美性生活一级| 日韩成人av网址| 国产精品久久久久桃色tv| 国产www在线观看| 日韩一区免费视频| 青青草原成人在线视频| 欧美videofree性高清杂交| 热久久最新地址| 不卡在线视频中文字幕| 91精品国产麻豆国产在线观看| 精品日本视频| 亚洲一区二区在线免费| 69p69国产精品|