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

首頁 > 學院 > 開發設計 > 正文

《C++編碼規范》修訂說明

2019-11-17 05:26:46
字體:
來源:轉載
供稿:網友

  目錄p11:

原則23.22 代碼中用到的路徑只用“/”而不要用“/”··· 196

更改為

原則23.22 代碼中用到的路徑只用“/”而不要用“”··· 196

正文P1倒數第2行:

多態:父類和子類可以為同一個接口(復用)提供不同的實現,外部代碼不需任何改動(復用)就可以擁有不同的特性。

更改為

多態:不同子類可以為同一個父類接口(復用)提供不同的實現,外部代碼不需任何改動(復用)就可以擁有不同的特性。



正文P6原則1.2 關于變量和函數名

1.2.1 說明

……(同時參閱:“原則1.7 關于匿名命名空間級標識符的前綴”、……)

更改為

……(同時參閱:“原則1.7 關于全局命名空間級標識符的前綴”、……)

正文P9原則1.4 關于宏、常量和模板

1.4.2 例子

// 常量類的宏

#define PIE 3.1415926

// 函數類的宏

#define MAX( a,b ) (/* … */)

// 常量

const int LENGTH = 1024;

// 枚舉中的常量成員

更改為

// 常量類的宏PIE

#define PIE 3.1415926

// 函數類的宏MAX

#define MAX( a,b ) (/* … */)

// 常量LENGTH

const int LENGTH = 1024;

// 枚舉中的常量成員BLUE, RED, WHITE

(還有幾處類似的添加)

正文P12原則1.7上面

合理的命名方式肯定在這兩個極端中間的某處,但具體在哪里有賴于大家自己的判定。

更改為

合理的命名方式肯定在這兩個極端中間的某處,但具體在哪里有賴于大家自己的判定。不過,一個組織或部門內部最好統一意見,以方便大家互相理解交流。



正文P12原則1.7 關于匿名命名空間級標識符的前綴

原則1.7 關于匿名命名空間級標識符的前綴

1.7.1 說明

給匿名命名空間級標識符一個公共前綴(如所屬Package名或Library名,加下劃線),用來區別其他提供類似功能的Packet或Library等。

匿名命名空間中的標識符指的是全局或文件級變量名、常量名、宏、類型名、函數名等。

更改為

原則1.7 關于全局命名空間級標識符的前綴

1.7.1 說明

給全局命名空間(匿名,全局變量缺省所屬的那個命名空間,以下同)級標識符一個公共前綴(如所屬Package名或Library名,加下劃線),用來區別其他提供類似功能的Packet或Library等。

全局命名空間中的標識符指的是全局或文件級變量名、常量名、宏名、類型名、函數名等。

正文P13原則1.7 關于匿名命名空間級標識符的前綴

1.7.3 原因

假如希望代碼復用,則匿名命名空間級標識符就需要防止命名沖突。

更改為

假如希望代碼復用,則全局命名空間級標識符就需要防止命名沖突。



正文P13原則1.8 減少匿名命名空間級標識符

原則1.8 減少匿名命名空間級標識符

1.8.1 說明

盡量減少匿名命名空間級變量、常量、宏及函數等標識符?!?br />
更改為

原則1.8 減少全局命名空間級標識符

1.8.1 說明

盡量減少全局命名空間級變量、常量、宏及函數等標識符?!?br />
正文P13原則1.8 減少匿名命名空間級標識符

……

1.8.2 例子

class CommonDefinition_T …

{

public :

const float PIE;

// …

};

更改為

1.8.2 例子

class CommonDefinition_T …

{

public :

const float PIE; // 現在常量PIE不再是全局的

// …

};

正文P13原則1.8 減少匿名命名空間級標識符

1.8.3 原因

……

縮短生命周期,使之只存在于它應該發揮作用的有限時間內,從而減少麻煩:更好記、更好維護、不會被誤用或濫用等。

更改為

縮小其有效周期/范圍,使之只存在于它應該發揮作用的有限時間/空間內,從而減少麻煩:更好記、更好維護、不會被誤用或濫用等。

正文P16原則1.12 盡量用英文命名


英語是最通用的語言,非凡是在程序語言中,其他語言(比如選擇漢語拼音)可能造成閱讀者理解上的困難。

更改為

英語是最通用的語言,非凡是在程序語言中,其他語言(比如選擇漢語拼音)可能造成閱讀者理解上的困難,也不利于更大范圍的代碼復用。

正文P18原則1.19 避免名字中出現外形混淆的字母或數字

例子

/*

* 字母O和數字0外形類似,避免混用;實在無

* 法避免,最好總是用小寫,這樣和數字0區別還

* 大一點

*/

更改為

例子

/*-----------------------------------------------------------------

* 字母O和數字0外形類似,避免混用;實在無

* 法避免,字母O最好總是用小寫,這樣和數字0

* 區別還大一點

*-----------------------------------------------------------------*/

(為了區分輕易,本書所有的/*  */的注釋均在上下加了短橫線--------)

正文P26原則2.3 少用浮點數除非必須

原則2.3 少用浮點數除非必須

更改為

原則2.3 少用浮點類型除非必須

C++編碼規范》修訂說明

正文P26原則2.3 少用浮點數除非必須

2.3.1 例子

int baudRate = 9600;

int symbolsIn15msec;

// 使用了浮點數,能避免嗎

更改為

2.3.1 例子

int baudRate = 9600;

int symbolsIn15msec;

// 使用了浮點類型,能避免嗎

正文P26原則2.3 少用浮點數除非必須

2.3.2 原因

……

浮點數的異常處理復雜(比如上溢、下溢等的處理)。

……

更改為

2.3.2 原因

……

浮點類型的異常處理復雜(比如上溢、下溢等的處理)。

……

正文P26原則2.4 用typedef簡化程序中的復雜語法

2.4.1 例子

// 用typedef簡化函數指針

typedef int (*CallbackFuncPtr_T)(int parameter);

更改為

2.4.1 例子

// 用typedef簡化函數指針

typedef int (*CallbackFunctionPtr_T)(int parameter);



正文P26原則2.4 用typedef簡化程序中的復雜語法

2.4.3 定量分析的參考

包含4個以上獨立元素的語法應被視為復雜語法,如上例中的函數指針定義,不算typedef的獨立元素數為5。

更改為

2.4.3 定量分析的參考

包含4個以上獨立元素的語法應被視為復雜語法,如上例中的函數指針定義,不算typedef的獨立元素數為5(int,*,CallbackFunctionPtr_T,int,parameter)。

正文P28

2.7.2 原因

……

減少匿名命名空間級變量、常量、宏及函數。

更改為

符合“原則1.8 減少全局命名空間級標識符”。



正文P30

原則3.1 一定要做到先定義后使用

3.1.1 說明

C++必須這樣做(否則編譯通不過)。C程序沒有強制要求,但也應該先提供原型,再使用函數。

3.1.2 原因

先定義使得編譯器能夠在編譯時就檢查和找出錯誤(而不是等到連接或運行時)。

更改為

原則3.1 函數一定要做到先聲明后使用

3.1.1 說明

C++必須這樣做(否則編譯通不過)。C程序沒有強制要求,但也應該先提供原型,再使用函數。

3.1.2 原因

先聲明使得編譯器能夠在編譯時就檢查和找出錯誤(而不是等到連接或運行時)。

正文P40原則3.17 當函數返回引用或指針時,用文字描述其有效期

3.17.1 說明

有效期是指引用或指針能有效地找到對象的期間。文字描述最好以注釋形式放在函數所在的頭文件中(這樣比較直接)。

更改為

3.17.1 說明

有效期是指引用或指針能有效地找到目標的時間段。文字描述最好以注釋形式放在函數所在的頭文件中(這樣比較直接)。

正文P41

3.18.2 原因

……


返回只讀(常量)的引用或指針還是可接受的。

更改為

關于能否返回只讀(常量)的引用或指針,請參見“原則8.3 類成員可以轉換成常量形式暴露出來”。

正文P41~42

3.20.1 說明

假如我們能把友元函數定義成虛函數,則子類既可以繼續該友元的接口而無需重復聲明友元……

更改為

假如我們能把友元函數定義成虛函數,則子類既可以繼續該函數而無需重復聲明友元……

正文P45原則4.2 類成員應是私有的(PRivate)

4.2.2 原因

更糟的是,任何對類的修改都將影響使用該類的代碼,因為這些代碼有權直接訪問(被修改的)類成員。

更改為

更糟的是,任何對類實現的修改都可能影響使用該類的代碼,因為這些代碼有權直接訪問(被修改的)類成員。

正文p47原則4.5 降低類間的耦合度

4.5.2 例子

經??吹竭@樣的例子:一個大功能模塊中有許多不同類型的對象,為了協同工作,每類對象都多少帶有其他對象的指針或引用,造成你中有我,我中有你,最終導致一鍋粥,誰也離不開誰。

更改為

4.5.2 例子

經??吹竭@樣的例子:一個大功能模塊中有許多不同類型的對象,為了協同工作,每類對象內部都多少帶有其他對象的指針或引用,造成你中有我,我中有你,最終導致一鍋粥,誰也離不開誰。

正文p50原則4.9 避免為每個類成員提供訪問函數

原因

……

專注于屬性的類在多線程環境下效率低下。若專注于行為,一次行為會修改一連串相關屬性而只需上一次鎖(在一個成員函數/行為中);而專注于屬性,則不得不每修改一個屬性就上一次鎖(在每個類成員提供訪問函數中),因為要防止多個線程同時調用訪問函數(去修改同一個屬性)。

更改為

……

專注于屬性的類在多線程環境下效率低下。若專注于行為,一次行為會修改一連串相關屬性而只需上一次鎖(在一個成員函數中);而專注于屬性,則不得不每修改一個屬性就上一次鎖(在每個類成員的訪問函數中),因為要防止多個線程同時調用訪問函數(去修改同一個屬性)。

正文p54

原則4.16 用嵌套類的方法減少匿名命名空間類的數量

4.16.1 說明

不需要把所有類的定義都放在匿名命名空間中。嵌套在別的類中的類是不屬于匿名命名空間的。

更改為

原則4.16 用嵌套類的方法減少全局命名空間類的數量

4.16.1 說明

不需要把所有類的定義都放在全局命名空間中。嵌套在別的類中的類是不屬于全局命名空間的。



正文p55

第5章 (面向對象的)繼續

繼續是面向對象語言的一個基本特性。這是一個強大的功能,但必須運用得當,否則發揮不出其特點,甚至適得其反。

更改為

繼續是面向對象語言的一個基本特性。功能強大自不必多言,但“打破封裝”的副作用卻鮮為人知,所以必須運用得當,否則發揮不出其特點,甚至適得其反。

正文p55原則5.2 關于“有”和“由…實現”

5.2.1 說明

(一個類)包含(另一個類)意味著“有一個”或“由…實現”?!八接欣^續(private inheritance)”意味著“由…實現”。

更改為

5.2.1 說明

(一個類)包含(另一個類)意味著“有一個”或“由…實現”?!八接欣^續(private inheritance)”意味著“由…實現”(和“包含”類似;完全不同于“公共繼續”)。

正文p59

5.5.2 原因

……

與此類似,同層類的個數也不能太多,否則應考慮是否要加一個父類,以便做某種程度上的(新的)抽象,從而減少同層類的個數(這是一種平衡的藝術)。

更改為

與此類似,派生于同一父類的子類個數也不能太多(計劃生育?),否則應考慮是否要加一層父類,通過某種程度上的(新的)抽象,減少同層類的個數(這是一種平衡的藝術)。

正文p59

原則5.6 繼續樹上非葉子節點的類應是虛基類

5.6.1 例子

假如你有兩個(非虛)類C1和C2,且希望C2派生于C1,如圖5-1左邊所示,則應該增加一個虛基類A,且將C1和C2都從A派生出來,如圖5-1右邊所示。

更改為

原則5.6 繼續樹上非葉子節點的類應是抽象基類

5.6.1 例子

假如你有兩個(非抽象)類C1和C2,且希望C2派生于C1,如圖5-1左邊所示,則應該增加一個抽象基類(abstract base class)A,且將C1和C2都從A派生出來,如圖5-1右邊所示。

正文p60

……

進一步說,因為C++的類封裝了具體實現,而只把接口露在外面,所以C1的接口應該是C2最想要繼續的。換句話說,只要C2繼續了C1的接口,C2的對象就可以被看作C1的對象而參與任何C1對象可參與的活動。由此可見,接口本身(而不是具體實現)是參與活動的充分必要條件,這就是為什么A通常是虛基類。

讓我們再換一個角度,繼續的一大缺點是打破封裝,即把基類的實現細節暴露給派生類。導致的結果是,對基類的修改將無法保證不會波及派生類,即基類和派生類是緊耦合關系(緊耦合的缺點請參見“原則4.5 降低類間的耦合度”),除非基類是純虛的(沒有實現細節)。


另外,為了防止多重繼續帶來的各種問題(參見“原則5.14 慎用多重繼續”),也建議繼續樹上非葉子節點的類盡量是沒有成員的純虛基類(類似于java中的Interface)。

更改為

進一步說,因為C++的類封裝了具體實現,而只把接口露在外面,所以C1的接口應該是C2最想要繼續的。換句話說,只要C2繼續了C1的接口,C2的對象就可以被看作C1的對象而參與任何C1對象可參與的活動。由此可見,接口本身(而不是具體實現)是參與活動的充分必要條件,這就是為什么A通常是只定義接口的完全的抽象基類(類似于Java中的Interface)。

用完全抽象基類的另一個原因:繼續存在一個很大的缺陷,就是打破封裝,即把基類的實現細節暴露給派生類。導致的結果是,對基類的修改將無法保證不會波及派生類,即基類和派生類是緊耦合關系(緊耦合的缺點請參見“原則4.5 降低類間的耦合度”),除非基類完全沒有實現細節。

用完全抽象基類的第三個原因:為了防止多重繼續帶來的各種問題(參見“原則5.14 慎用多重繼續”),繼續樹上非葉子節點的類最好沒有成員。

正文p73

6.8.3 原因

防止其后再次使用該指針。

更改為

防止其后再次使用該指針(使用NULL會馬上導致系統錯誤,好查)。

正文p85原則7.19 將循環索引的初值定在循環點四周

7.19.1 例子

假設循環隊列下標從0到MAX-1(MAX為該隊列可容納的元素個數),則隊首應設在MAX-3處。

7.19.2 原因

循環索引最常出問題的地方就在循環點四周,將隊首放在這里可以很早就發現問題。

問題常出現在:插入元素使得下標從MAX-1繞回到0、刪除元素使得下標從0繞回到MAX-1、插入頭一兩個元素,以及刪除最后一兩個元素時。選擇MAX-3可以一口氣將這些情況都覆蓋住。

更改為

7.19.1 例子

假設循環隊列下標從0到MAX-1(MAX為該隊列可容納的元素個數),則隊首游標應設在MAX-3處。

7.19.2 原因

循環索引最常出問題的地方就在循環點四周,將隊首游標放在這里可以很早就發現問題。

問題常出現在:插入元素使得游標從MAX-1繞回到0、刪除元素使得游標從0繞回到MAX-1、插入頭一兩個元素,以及刪除最后一兩個元素時。選擇MAX-3可以一口氣將這些情況都覆蓋住。

正文p89

原則8.1 關于常量修飾符的含義

例子

char* p = “Hello.”; // 指針不是常量,指針指向的也不是常量

const char* p = “Hello.”; // 指針不是常量,指針指向的是常量

char* const p = “Hello.”; // 指針是常量,指針指向的不是常量

const char* const p = “Hello”; // 指針是常量,指針指向的也是常量

更改為

原則8.1 關于常量修飾符的含義

8.1.1 例子

char* p = “Hello.”; // 指針不是常量,指針指向的也不是常量

char const* p = “Hello.”; // 指針不是常量,指針指向的是常量

char* const p = “Hello.”; // 指針是常量,指針指向的不是常量

char const* const p = “Hello”; // 指針是常量,指針指向的也是常量

8.1.2 說明

“char* p”的意思是:p是一個指針;它指向字符類型。

“char const* p”的意思是:p是一個指針;它指向一個常量;該常量是字符類型。

“char* const p”的意思是:p是一個常量;它是一個指針常量;該常量指針指向字符類型。

“char const* const p”的意思是:p是一個常量;它是一個指針常量;該常量指針指向一個常量;而被指向的常量是字符類型。

正文p89~90

8.2.3 原因

編譯器會永遠記住此事。假如今后對blockCopy()的任何修改(有意或無意)要對pSrc所指數據進行寫操作,就會引起編譯錯誤,從而提示該函數的后繼開發者遵循最初的設計。

更改為

編譯器會永遠記住此事。假如今后對blockCopy()函數體的任何修改(有意或無意)要對pSrc所指數據進行寫操作,就會引起編譯錯誤,從而提示該函數的后繼開發者遵循最初的設計。

正文p92

8.5.2 原因

造成程序狀態改變的成員函數不是絕對意義上的常量成員函數(不符合大多數人對常量成員函數的預期)。

更改為

造成程序狀態改變的成員函數不是絕對意義上的常量成員函數。雖然不一定違反C++語法,但語義有問題,且不符合大多數人對常量成員函數的預期。



正文p123原則15.4 不要用分號結束宏定義

例子

/*

* 用分號結尾,結果導致下面第二條語句變成

* “channel=CHANNEL_MAX;-1;”,編譯出錯


*/

更改為

例子

/*----------------------------------------

* 用分號結尾,結果導致下面第二條語句變成

* “channel=16;-1;”,編譯出錯

-----------------------------------------*/

正文p128

15.11.2 原因

……

對于不得不出現在公共頭文件中的宏(如防止頭文件被多次引用的宏),要加前綴以減少沖突,參見“原則1.7 關于匿名命名空間級標識符的前綴”。

更改為

……

對于不得不出現在公共頭文件中的宏(如防止頭文件被多次引用的宏),要加前綴以減少沖突,參見“原則1.7 關于全局命名空間級標識符的前綴”。

正文p132原則16.7 非凡當心析構時發生異常

原因

C++的異常處理機制規定,若在異常處理期間又發生異常,程序將被終止。

更改為

C++的異常處理機制規定,若在異常處理期間(catch語句塊中)又發生異常,程序將被終止。

正文p142

17.15.2 例子

// {}單獨占一行,并且和if語句縮進相同

更改為

17.15.2 例子

// {}單獨占一行,并且和if/for語句縮進相同

正文p146原則17.20 為所有switch語句提供default分支

原因

……這樣,今后一旦增加新分支(比如枚舉增加了新的值),不必擔心是否會遺漏相關的switch語句。

更改為

原因

……這樣,今后一旦增加新分支(比如枚舉增加了新的值),不必擔心是否會遺漏相關的switch語句(遺漏會造成程序退出,馬上就能發現)。

正文p148

17.24.2 原因

編譯器在解析變量定義時是從右向左掃描的,編程者也要習慣這種方式。如上例所示,pName首先是一個指針,其次它要指向一個常量,第三這個常量是字符類型的。仔細品味這些修飾,你會發現它們是有優先順序的,優先級越高越要放在右面(緊挨變量名)。

更改為

17.24.2 原因

編譯器在解析變量定義時是以變量名為核心向外掃描的,編程者也要習慣這種方式。如上例所示,pName首先是一個指針,其次它要指向一個常量,第三這個常量是字符類型的。仔細品味這些修飾,你會發現它們是有優先順序的,優先級越高越要靠近變量名。(還可參考“原則8.1 關于常量修飾符的含義”)

正文p160

原則18.12 區分“戰略性”注釋和“戰術性”注釋

18.12.1 說明

注釋分“戰略性”和“戰術性”兩大類:

“戰略性”注釋用來說明一段代碼,因而要放在該段代碼之前。通常,此類注釋較長(超過一行),建議用/**/風格。

“戰術性”注釋用來說明一句代碼,通常放在該代碼之后(行末注釋)。建議用//風格。

更改為

原則18.12 區分段落注釋和單行注釋

18.12.1 說明

注釋分段落和單行兩大類:

段落注釋用來說明一段代碼,因而要放在該段代碼之前。通常,此類注釋較長(超過一行),建議用/**/風格。

單行注釋用來說明一句代碼,通常放在該代碼之后(行末注釋)。建議用//風格。

段落注釋用橫線上下框?。ㄒ娎踊蚋戒浀拇蠖未a),目的是一目了然地將代碼和注釋區分出來,這樣有利于代碼和注釋的閱讀。(單行注釋這樣做顯得累贅,請讀者自己權衡。)

正文p161原則18.15 減少不必要的單獨占一行的注釋

原因

……

類定義和函數前的注釋(戰略性)不會打斷代碼,因為它們在一個完整的邏輯段之外。由此也可以揣摩該原則進退的分寸。

更改為

原因

……

類定義和函數前的注釋(段落注釋)不會打斷代碼,因為它們在一個完整的邏輯段之外。由此也可以揣摩該原則進退的分寸。

正文p172

20.1.4 此類宏的命名方式

……

此類宏的前綴請參見“原則1.7 關于匿名命名空間級標識符的前綴”。

更改為

……

此類宏的前綴請參見“原則1.7 關于全局命名空間級標識符的前綴”。

正文p174原則20.7 將函數庫放在一個單獨的目錄下引用

20.7.1 例子

#include “MyLibrary/ZErrLog.hpp”

更改為

20.7.1 例子

#include “Z_Library/ZErrLog.hpp”

正文p208

24.15.1 說明

……

但有的編譯器會視滿足下述條件之一的類為非直傳類:


……

有虛基類。

更改為

24.15.1 說明

……

但有的編譯器會視滿足下述條件之一的類為非直傳類:

……

有抽象基類。



正文p213

25.1.2 原因

減少命名沖突:

具體說明,請參見“原則1.8 減少匿名命名空間級標識符”。

更改為

25.1.2 原因

減少命名沖突:

具體說明,請參見“原則1.8 減少全局命名空間級標識符”。

P220附錄

/*

* ConstrUCtor:

* Direct initialization.

*/

Z_SmartPtr_T(

POINTEE_T* pPointee,

Z_AbstractFactory_T<POINTEE_T>* pFactory=NULL(2)(3)

);

更改為

/*------------------------

* Constructor:

* Direct initialization.

-------------------------*/

eXPlicit Z_SmartPtr_T(

POINTEE_T* pPointee,

Z_AbstractFactory_T<POINTEE_T>* pFactory=NULL(2)(3)

);

p222附錄

// Program Notes: -Multi-thread safe = False:

// This is because these kind of classes is just like a

// dumb pointer which need to be protected outside.

更改為

// Program Notes: -Multi-thread safe = False:

// This is because this kind of classes is just like dumb

// pointers which need to be protected outside.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影免费观看高清完整| 国产精品狠色婷| 亚洲精品一二区| 欧美黄色www| 中文字幕日本精品| 一区二区三区黄色| 狠狠久久亚洲欧美专区| 久久久免费精品视频| www.日韩欧美| 自拍偷拍亚洲区| 人人爽久久涩噜噜噜网站| 国产精品久久久久久久久影视| 欧美在线视频一区二区| 一区二区亚洲精品国产| 国产精品pans私拍| 2018国产精品视频| 亚洲一区二区三区在线视频| 亚洲国产另类 国产精品国产免费| 国产精品久久久久久久app| 欧美视频在线看| 国产精品久久久久91| 亚洲成人久久久| 国产亚洲激情视频在线| 影音先锋日韩有码| 国产成人久久精品| 亚洲欧美在线一区| 色偷偷偷综合中文字幕;dd| 亚洲天堂av电影| 一区二区欧美在线| 亚洲免费福利视频| 国产成人涩涩涩视频在线观看| 国产精品久久久久久久久久久久| 国产91av在线| 日韩电影中文字幕在线观看| 亚洲第一黄色网| 亚洲自拍欧美另类| 91麻豆国产精品| 国产福利精品视频| 久久精品电影网| 久久亚洲精品中文字幕冲田杏梨| 欧美一级大片视频| 国内精品一区二区三区四区| 亚洲最新av在线| 欧美刺激性大交免费视频| 91精品国产777在线观看| 亚洲综合中文字幕在线观看| 精品久久久香蕉免费精品视频| 第一福利永久视频精品| 91精品视频免费观看| 久久人人爽人人爽人人片av高请| 亚洲国产成人精品一区二区| 日韩精品高清在线| 亚洲一区二区免费在线| 国产精品99久久99久久久二8| 久久久久北条麻妃免费看| 国产91露脸中文字幕在线| 日韩亚洲在线观看| 亚洲国产精品字幕| 91精品国产免费久久久久久| 国自产精品手机在线观看视频| 亚洲片国产一区一级在线观看| 欧美精品videosex牲欧美| 亚洲国产精品成人一区二区| 国产成人在线精品| 最近2019年手机中文字幕| 91国产中文字幕| 亚洲欧美资源在线| 日韩有码在线观看| 中文字幕亚洲字幕| 久久久久久久色| 亚洲女人天堂网| 久久成人av网站| 国产丝袜高跟一区| 在线视频亚洲欧美| 国产精品男女猛烈高潮激情| 国产欧美精品一区二区三区介绍| 热久久这里只有| 日韩不卡在线观看| 亚洲欧美一区二区三区情侣bbw| 久久成人精品电影| 欧美性猛交xxxx免费看久久久| 国产精品一二区| 日韩在线视频免费观看| 日韩在线观看免费| 97成人精品视频在线观看| 日本成人激情视频| 91人人爽人人爽人人精88v| 日本亚洲欧洲色α| 日韩一二三在线视频播| 精品香蕉在线观看视频一| 亚洲区bt下载| 亚洲国产精品久久久久秋霞不卡| 久久久亚洲国产天美传媒修理工| 国产ts人妖一区二区三区| 96精品久久久久中文字幕| 亚洲国产精品va在线看黑人动漫| 国产综合视频在线观看| 欧美激情免费看| 亚洲品质视频自拍网| 欧美性高潮床叫视频| 欧美精品精品精品精品免费| 91老司机精品视频| 日韩欧美极品在线观看| 91网站在线看| 国模gogo一区二区大胆私拍| 国产欧美一区二区三区久久人妖| 国产啪精品视频网站| 日韩福利伦理影院免费| 成人久久一区二区三区| 亚洲天天在线日亚洲洲精| 欧美午夜精品久久久久久人妖| 欧美成人网在线| 日韩欧美一区二区三区| 亚洲一级免费视频| 亚洲国产欧美一区二区丝袜黑人| 久久精品国产2020观看福利| 亚洲第一中文字幕| 91精品国产91久久久久福利| 日韩一二三在线视频播| 欧美极品少妇xxxxⅹ免费视频| 国产婷婷色综合av蜜臀av| 日韩精品在线影院| 日韩美女主播视频| 欧美日韩精品在线| 亚洲视频综合网| 在线观看欧美日韩| 欧美极品美女视频网站在线观看免费| 亚洲一区二区三区久久| 在线中文字幕日韩| 中日韩美女免费视频网址在线观看| 色www亚洲国产张柏芝| 久久久久久久国产精品视频| 欧美乱大交xxxxx另类电影| 精品人伦一区二区三区蜜桃免费| 成人黄色av播放免费| 日韩久久精品成人| 欧美成人黄色小视频| www.亚洲男人天堂| 亚洲欧美www| 国产精品wwwwww| 亚洲自拍中文字幕| 日韩一中文字幕| 国产亚洲视频中文字幕视频| 日本在线观看天堂男亚洲| 日韩av免费在线| 欧美自拍大量在线观看| 91在线高清免费观看| 国产精品久久99久久| 欧美性视频精品| 久久久欧美精品| 久久久久久久久久久人体| 不卡av在线播放| 久久视频精品在线| 91av国产在线| 国产精品视频久| 欧美肥老太性生活视频| 亚洲国产精品va在线看黑人| 在线一区二区日韩| 久久久成人精品视频| 亚洲欧洲日产国码av系列天堂| 久久久久久91香蕉国产| 国内外成人免费激情在线视频| 日本中文字幕不卡免费| 欧美疯狂性受xxxxx另类|