青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Design&Art

C++博客 首頁 新隨筆 聯系 聚合 管理
  26 Posts :: 0 Stories :: 38 Comments :: 0 Trackbacks

2009年4月11日 #

一、對于基本聲明 

1.const int r=100; //標準const變量聲明加初始化,因為默認內部連接所以必須被初始化,其作用域為此文件,編譯器經過類型檢查后直接用100在編譯時替換。 

2.extend const int r=100; //將const改為外部連接,作用于擴大至全局,編譯時會分配內存,并且可以不進行初始化,僅僅作為聲明,編譯器認為在程序其他地方進行了定義。 

3.const int r[ ]={1,2,3,4}; 

struct S {int a,b;}; 
const S s[ ]={(1,2),(3.4)}; //以上兩種都是常量集合,編譯器會為其分配內存,所以不能在編譯期間使用其中的值,例如:int temp[r[2]];這樣的編譯器會報告不能找到常量表達式 

二、對于指針 
1.const int *r=&x; //聲明r為一個指向常量的x的指針,r指向的對象不能被修改,但他可以指向任何地址的常量。 

2.int const *r=&x; //與用法1完全等價,沒有任何區別。 

3.int * const r=&x; //聲明r為一個常量指針,他指向x,r這個指針的指向不能被修改,但他指向的地址的內容可以修改。 

4.const int * const r=&x; //綜合1、3用法,r是一個指向常量的常量型指針。 

三、對于類型檢查 
可以把一個非const對象賦給一個指向const的指針,因為有時候我們不想從這個指針來修改其對象的值;但是不可以把一個const對象賦值給一個非const指針,因為這樣可能會通過這個指針改變指向對象的值,但也存在使這種操作通過的合法化寫法,使用類型強制轉換可以通過指針改變const對象: 

const int r=100; 
int * ptr = const_cast<int *>(&r); //C++標準,C語言使用:int * ptr =(int*)&r; 

四、對于字符數組 
如char * name = “china”; 這樣的語句,在編譯時是能夠通過的,但是”china”是常量字符數組,任何想修改他的操作也能通過編譯但會引起運行時錯誤,如果我們想修改字符數組的話就要使用char name[ ] = “china”; 這種形式。 

五、對于函數 
1.void Fuction1 ( const int r ); //此處為參數傳遞const值,意義是變量初值不能被函數改變 

2.const int Fuction1 (int); //此處返回const值,意思指返回的原函數里的變量的初值不能被修改,但是函數按值返回的這個變量被制成副本,能不能被修改就沒有了意義,它可以被賦給任何的const或非const類型變量,完全不需要加上這個const關鍵字。但這只對于內部類型而言(因為內部類型返回的肯定是一個值,而不會返回一個變量,不會作為左值使用),對于用戶自定義類型,返回值是常量是非常重要的,見下面條款3。 

3.Class CX; //內部有構造函數,聲明如CX(int r =0) 

CX Fuction1 () { return CX(); } 

const CX Fuction2 () { return CX(); } 

如有上面的自定義類CX,和函數Fuction1()和Fuction2(),我們進行如下操作時: 

Fuction1() = CX(1); //沒有問題,可以作為左值調用 

Fuction2() = CX(1); //編譯錯誤,const返回值禁止作為左值調用。因為左值把返回值作為變量會修改其返回值,const聲明禁止這種修改。 


4.函數中指針的const傳遞和返回: 

int F1 (const char * pstr); //作為傳遞的時候使用const修飾可以保證不會通過這個指針來修改傳遞參數的初值,這里在函數內部任何修改*pstr的企圖都會引起編譯錯誤。 

const char * F2 (); //意義是函數返回的指針指向的對象是一個const對象,它必須賦給一個同樣是指向const對象的指針。 

const char * const F3(); //比上面多了一個const,這個const的意義只是在他被用作左值時有效,它表明了這個指針除了指向const對象外,它本身也不能被修改,所以就不能當作左值來處理。 


5.函數中引用的const傳遞: 

void F1 ( const X& px); //這樣的一個const引用傳遞和最普通的函數按值傳遞的效果是一模一樣的,他禁止對引用的對象的一切修改,唯一不同的是按值傳遞會先建立一個類對象的副本,然后傳遞過去,而它直接傳遞地址,所以這種傳遞比按值傳遞更有效。 

**另外只有引用的const傳遞可以傳遞一個臨時對象,因為臨時對象都是const屬性,且是不可見的,他短時間存在一個局部域中,所以不能使用指針,只有引用的const傳遞能夠捕捉到這個家伙。 

六、對于類 
1.首先,對于const的成員變量,只能在構造函數里使用初始化成員列表來初始化,試圖在構造函數體內進行初始化const成員變量會引起編譯錯誤。初始化成員列表形如: 
2.X:: X ( int ir ): r(ir) {} //假設r是類X的const成員變量 

2.const成員函數。提到這個概念首先要談到const對象,正象內置類型能夠定義const對象一樣(const int r=10;),用戶自定義類型也可以定義const對象(const X px(10);),編譯器要保證這個對象在其生命周期內不能夠被改變。如果你定義了這樣的一個const對象,那么對于這個對象的一切非const成員函數的調用,編譯器為了保證對象的const特性,都會禁止并在編譯期間報錯。所以如果你想讓你的成員函數能夠在const對象上進行操作的話,就要把這個函數聲明為const成員函數。假如f( )是類中的成員函數的話,它的聲明形如: 
int f( ) const; //const放在函數的最后,編譯器會對這個函數進行檢查,在這個函數中的任何試圖改變成員變量和調用非const成員函數的操作都被視為非法 
注意:類的構造和析構函數都不能是const函數。 

3.建立了一個const成員函數,但仍然想用這個函數改變對象內部的數據。這樣的一個要求也會經常遇到,尤其是在一個苛刻的面試考官那里。首先我們要弄清楚考官的要求,因為有兩種方法可以實現,如果這位考官要求不改變原來類的任何東西,只讓你從當前這個const成員函數入手,那么你只有使用前面提到的類型強制轉換方法。實例如下: 

//假如有一個叫做X的類,它有一個int成員變量r,我們需要通過一個const成員函數f( )來對這個r進行++r操作,代碼如下 

void X::f( ) const 

{ (const_cast(this)) -> ++r; } //通過this指針進行類型強制轉換實現 

另外一種方法就是使用關鍵字:mutable。如果你的成員變量在定義時是這個樣子的: 

mutable int r ; 

那么它就告訴編譯器這個成員變量可以通過const成員函數改變。編譯器就不會再理會對他的檢查了。 
posted @ 2009-04-11 00:51 安帛偉 閱讀(367) | 評論 (0)編輯 收藏

2009年3月4日 #

在VC6中,如何查看以下代碼中vec里的內容?

    vector<int> vec;
    vec.push_back(
1);
    vec.push_back(
14);
如果在Watch窗口中直接輸入vec,則會出現如下內容:

眾所周知,vector使用的是線性連續存儲空間,上圖中的_First和_Last分別指向配置得來的連續空間中目前已被使用的范圍,而_End指向整塊連續空間的尾端。
因此,我們可以用如下方式來查看vector里的內容:
vec._First[0]
vec._First[1]


同理,對于嵌套的vector(如下代碼中的vv)
    vector<int> vec;
    vec.push_back(
1);
    vec.push_back(
14);
    vector
< vector<int> > vv;
    vv.push_back(vec);
    vec.push_back(
15);
    vv.push_back(vec);
我們可以這樣查看:
vv._First[1]._First[2]
posted @ 2009-03-04 14:42 安帛偉 閱讀(5100) | 評論 (1)編輯 收藏

2009年1月22日 #

STL的map表里有一個erase方法用來從一個map中刪除掉指令的節點
eg:

map<string,string> mapTest;
typedef map
<string,string>::iterator ITER;

ITER iter
=mapTest.find(key);
mapTest.erase(iter);

 像上面這樣只是刪除單個節點,map的形為不會出現任務問題,
但是當在一個循環里用的時候,往往會被誤用,那是因為使用者沒有正確理解iterator的概念.
像下面這樣的一個例子就是錯誤的寫法,
eg:

for(ITER iter=mapTest.begin();iter!=mapTest.end();++iter)
{
cout
<<iter->first<<":"<<iter->second<<endl;
mapTest.erase(iter);
}

這是一種錯誤的寫法,會導致程序行為不可知.究其原因是map 是關聯容器,對于關聯容器來說,如果某一個元素已經被刪除,那么其對應的迭代器就失效了,不應該再被使用;否則會導致程序無定義的行為。
可以用以下方法解決這問題:
正確的寫法
1.使用刪除之前的迭代器定位下一個元素。STL建議的使用方式

for(ITER iter=mapTest.begin();iter!=mapTest.end();)
{
cout
<<iter->first<<":"<<iter->second<<endl;
mapTest.erase(iter
++);
}

2. erase() 成員函數返回下一個元素的迭代器

for(ITER iter=mapTest.begin();iter!=mapTest.end();)
{
cout
<<iter->first<<":"<<iter->second<<endl;
iter
=mapTest.erase(iter);
}
posted @ 2009-01-22 13:33 安帛偉 閱讀(26411) | 評論 (7)編輯 收藏

2008年5月28日 #

開閉原則(OCP):對擴展開放,對修改封閉
里氏代換原則(LSP):子類可替換父類,反之不行
依賴倒置原則(DIP):依賴于抽象而不是依賴與具體
接口隔離原則(ISP):多個專門接口比一個總接口好
合成/聚合復用原則(CARP):盡量使用合成/聚合,而不是繼承
迪米特法則(LoD):不要和陌生人說話
posted @ 2008-05-28 03:11 安帛偉 閱讀(567) | 評論 (1)編輯 收藏

2007年12月18日 #

GMOS擊鍵模型

GMOSgoals/objects/methods/slecetion rules

基本操作時間

名稱和助記

典型值

含義

擊鍵(Keying),K

0.2

敲擊鍵盤上的一個鍵所需要的時間

指向(Pointing),P

1.1

用戶指向顯示屏上某一位置所需要的時間

歸位(Homing),H

0.4

用戶將手從鍵盤移動到鼠標或者從鼠標移動到鍵盤需要的時間

心理準備(Mentally preparing),M

1.35

用戶進入下一步所需要的心理準備時間

響應(Responding),R

 

 

 

插入刪除心理準備活動的規則

規則0 候選M的初始插入

在所有的K之前插入M。在所有用于選擇命令的P之前插入M。但是對于選擇命令參數的P,不要插入M

規則1 預期M的刪除

如果M前面的操作符號能完全預期M后邊的一個操作符,則將該M刪除。例如移動鼠標并點擊目標,就需要刪除按規則0插入的M,變PMKPK

規則2 認知但愿內M的刪除

如果一串MK屬于同一個認知單元,則刪除除了第一個以外的所有M。例如連續輸入一個單詞或者多個數字。

規則3 連續終結符之前M的刪除

如果K是一個認知單元后面的多余分隔符,如命令的分隔符后面緊跟著參數的分隔符,則將之前的M刪除。

規則4 作為命令終結符的M的刪除

如果K是一個分隔符,且后面緊跟著一個常量字符串,則將之前的M刪除。

規則5 重疊M的刪除

不要記入任何與R重疊的M

 

舉例:

設計一個軟件可以完成如下功能,可以把攝氏溫度轉換成華氏溫度,也可以把華氏溫度轉換成攝氏溫度。

界面一如下:


缺省選項沒有選中

HPKHKKKKK

HMPMKMHMKMKMKMKMK

HMPKHMKKKKMK

2H3M1P6K = 2*0.4 + 3*1.35 + 1.1 + 6*0.2 = 7.15

 

缺省選項選中

MKKKKMK

2M5K = 2*1.35 + 5*0.2 = 3.7

 

取兩者的平均值(7.15 + 3.7/2 =5.4

posted @ 2007-12-18 20:40 安帛偉 閱讀(1098) | 評論 (0)編輯 收藏

2007年11月26日 #

選自 Martin Fowler的《Refactoring,Improving the design of the existing code》一書

1.Duplicated Code
  代碼重復幾乎是最常見的異味了。他也是Refactoring 的主要目標之一。代碼重復往往來自于copy-and-paste 的編程風格。與他相對應OAOO 是一個好系統的重要標志。

2.Long method
  它是傳統結構化的“遺毒“。一個方法應當具有自我獨立的意圖,不要把幾個意圖放在一起。

3.Large Class
  大類就是你把太多的責任交給了一個類。這里的規則是One Class One Responsibility。

4.Divergent Change
  一個類里面的內容變化率不同。某些狀態一個小時變一次,某些則幾個月一年才變一次;某些狀態因為這方面的原因發生變化,而另一些則因為其他方面的原因變一次。面向對象的抽象就是把相對不變的和相對變化相隔離。把問題變化的一方面和另一方面相隔離。這使得這些相對不變的可以重用。問題變化的每個方面都可以單獨重用。這種相異變化的共存使得重用非常困難。

5.Shotgun Surgery
  這正好和上面相反。對系統一個地方的改變涉及到其他許多地方的相關改變。這些變化率和變化內容相似的狀態和行為通常應當放在同一個類中。

6.Feature Envy
  對象的目的就是封裝狀態以及與這些狀態緊密相關的行為。如果一個類的方法頻繁用get 方法存取其他類的狀態進行計算,那么你要考慮把行為移到涉及狀態數目最多的那個類。

7.Data Clumps
  某些數據通常像孩子一樣成群玩耍:一起出現在很多類的成員變量中,一起出現在許多方法的參數中…..,這些數據或許應該自己獨立形成對象。

8.Primitive Obsession
  面向對象的新手通常習慣使用幾個原始類型的數據來表示一個概念。譬如對于范圍,他們會使用兩個數字。對于Money,他們會用一個浮點數來表示。因為你沒有使用對象來表達問題中存在的概念,這使得代碼變的難以理解,解決問題的難度大大增加。
  好的習慣是擴充語言所能提供原始類型,用小對象來表示范圍、金額、轉化率、郵政編碼等等。

9.Switch Statement
  基于常量的開關語句是 OO 的大敵,你應當把他變為子類、state 或strategy。

10. Parallel Inheritance Hierarchies
  并行的繼承層次是shotgun surgery 的特殊情況。因為當你改變一個層次中的某一個類時,你必須同時改變另外一個層次的并行子類。

11. Lazy Class
  一個干活不多的類。類的維護需要額外的開銷,如果一個類承擔了太少的責任,應當消除它。

12. Speculative Generality
  一個類實現了從未用到的功能和通用性。通常這樣的類或方法唯一的用戶是testcase。不要猶豫,刪除它。

13. Temporary Field
  一個對象的屬性可能只在某些情況下才有意義。這樣的代碼將難以理解。專門建立一個對象來持有這樣的孤兒屬性,把只和他相關的行為移到該類。最常見的是一個特定的算法需要某些只有該算法才有用的變量。

14. Message Chain
  消息鏈發生于當一個客戶向一個對象要求另一個對象,然后客戶又向這另一對象要求另一個對象,再向這另一個對象要求另一個對象,如此如此。這時,你需要隱藏分派。

15. Middle Man
  對象的基本特性之一就是封裝,而你經常會通過分派去實現封裝。但是這一步不能走得太遠,如果你發現一個類接口的一大半方法都在做分派,你可能需要移去這個中間人。

16. Inappropriate Intimacy
  某些類相互之間太親密,它們花費了太多的時間去磚研別人的私有部分。對人類而言,我們也許不應該太假正經,但我們應當讓自己的類嚴格遵守禁欲主義。

17. Alternative Classes with Different Interfaces
  做相同事情的方法有不同的函數signature,一致把它們往類層次上移,直至協議一致。

18. Incomplete Library Class
  要建立一個好的類庫非常困難。我們大量的程序工作都基于類庫實現。然而,如此廣泛而又相異的目標對庫構建者提出了苛刻的要求。庫構建者也不是萬能的。有時候我們會發現庫類無法實現我們需要的功能。而直接對庫類的修改有非常困難。這時候就需要用各種手段進行Refactoring。

19. Data Class
  對象包括狀態和行為。如果一個類只有狀態沒有行為,那么肯定有什么地方出問題了。

20. Refused Bequest
  超類傳下來很多行為和狀態,而子類只是用了其中的很小一部分。這通常意味著你的類層次有問題。

21. Comments
  經常覺得要寫很多注釋表示你的代碼難以理解。如果這種感覺太多,表示你需要Refactoring。

 

posted @ 2007-11-26 17:09 安帛偉 閱讀(454) | 評論 (0)編輯 收藏

2007年11月21日 #

     摘要: C++的static有兩種用法:面向過程程序設計中的static和面向對象程序設計中的static。前者應用于普通變量和函數,不涉及類;后者主要說明static在類中的作用。
  閱讀全文
posted @ 2007-11-21 01:10 安帛偉 閱讀(345) | 評論 (0)編輯 收藏

2007年11月9日 #

在網上看到這樣一小段有意思的代碼:
int main()
{
    
int i;
    
int a[10];
    
for(i=0; i<=10; i++)
    {
        a[i]
=0;
        printf(
"%d ",a[i]);
    }
    
return 0;
}
這段代碼里的錯誤很明顯,數組a在循環時越界了。不過在VC6下編譯運行后的結果很有意思,是個無限循環,知道為什么嗎?
posted @ 2007-11-09 20:00 安帛偉 閱讀(350) | 評論 (0)編輯 收藏

2007年10月18日 #

     摘要: 處理在程序的運行時刻發生的錯誤,對于任何一個程序設計者來講都是不陌生的。對于錯誤的處理,我們有很多方法,本篇著重介紹的是C++中的錯誤異常處理。  閱讀全文
posted @ 2007-10-18 15:38 安帛偉 閱讀(515) | 評論 (0)編輯 收藏

2007年10月15日 #

在網上搜索“什么是哲學”,最后發現哲學沒有明確的定義(至少中文的沒找到)。
不過以我的理解,哲學就是思辯。思考會讓人認識到以前未認識到的東西,辯論則會減少思考過程中的錯誤認識。通過這樣的手段,人類得以發展出現代科學體系。
一切建立在思辯基礎之上的學科都是哲學的衍生學科,這包括所有的自然科學。計算機科學是自然科學的一個分支,所以也是哲學,這也就是為什么英文里的Ph.D(Doctor of Philosophy Degree 博士學位)是指所有自然科學的博士而非特指哲學專業的博士的原因。
有一個老游戲“文明”,游戲中最先研究出“哲學”的國家將直接進入“黃金時代”,生產力大大提高。這一點設計得非常切合實際,也說明了哲學在人類發展史上的重要性。
就中國來說,顯然哲學這個詞被“馬克思主義哲學”所誤用,一提哲學好像都與馬克思主義有關,其實不然。“堅持XXXX不動搖”這一類的言論其本身就不具有思辯的特性。我并不是說XXXX不正確,只是如果不去辯論,怎么能知道XXXX是否正確呢;如果XXXX本身是正確的,那么辯論不是可以更好的體現出它的正確性嗎?
中國經歷了二千年的封建制度,在這二千年里中國顯然沒有發展出哲學,所以自然科學體系沒有在中國歷史中產生也就很正常了。“勾股定理”、四大發明等,這些可能是中國歷史上為數不多的與自然科學相關的成果了,但是沒有哲學,一切成果也沒有辦法進一步發展成科學體系了。中國的封建制度顯然發展到了一個很高的高度,該體系應該說是很完善的:“君貴民輕”的教育制度;儒家思想被統治階段所利用;中央集權與軍隊的使用。所有這些都延長了封建制度的存在時間,不得不說,中國人還是很聰明的,只可惜聰明反被聰明誤。那些封建制度不那么完善的地方,會更早地發現封建制度的缺點,也就更早的產生新的政治制度。而哲學,則是新制度產生的基礎,通過思辨,我們可以發現“‘君’其實并不那么貴,‘民’也并不是那么輕”;當統治階段想要灌輸某種有利于他們統治的思想時,思辯會幫助我們明辨是非。
事實上中國并非沒有思辯,只不過思辨的思想沒有占據統治地位,這一點一直到現在也是這樣,不然為什么會有人刪除我們的帖子呢?:P
posted @ 2007-10-15 15:31 安帛偉 閱讀(267) | 評論 (0)編輯 收藏

僅列出標題  下一頁
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蘑菇福利视频一区播放| 国产精品久久久久av免费| 国产精品国产亚洲精品看不卡15 | 亚洲精品日韩精品| 久久精品一区二区国产| 在线观看三级视频欧美| 免费不卡亚洲欧美| 久久国产精品黑丝| 在线观看视频一区二区欧美日韩| 免费黄网站欧美| 欧美二区在线看| 亚洲永久网站| 久久国产精品亚洲va麻豆| 国产一区二区观看| 欧美国产一区视频在线观看 | 日韩小视频在线观看专区| 免费人成精品欧美精品| 亚洲精品视频在线观看免费| 亚洲欧洲三级电影| 国产精品裸体一区二区三区| 午夜免费日韩视频| 欧美尤物巨大精品爽| 亚洲国产成人久久综合一区| 亚洲盗摄视频| 欧美日韩国产bt| 午夜精品一区二区在线观看 | 亚洲国产成人av| 国产精品v欧美精品v日本精品动漫| 久久国产精品久久精品国产| 美女啪啪无遮挡免费久久网站| 亚洲一区二区三区视频| 久久全球大尺度高清视频| 亚洲夜间福利| 老司机aⅴ在线精品导航| 亚洲视频福利| 久久青青草原一区二区| 亚洲一品av免费观看| 久久人人97超碰人人澡爱香蕉| 一区二区三区四区五区在线 | 亚洲精品一区二区三区99| 国产精品视频久久久| 欧美黄污视频| 国产区欧美区日韩区| 欧美国产第一页| 国产精品久久久久久妇女6080| 久久国产一区| 欧美日韩日日骚| 嫩草伊人久久精品少妇av杨幂| 欧美国产一区在线| 免费不卡亚洲欧美| 国产日韩欧美视频| 一区二区三区日韩欧美精品| 亚洲精品护士| 久久精品国产清自在天天线| 亚洲婷婷综合久久一本伊一区| 久久久久久婷| 亚洲欧美影院| 欧美性色视频在线| 亚洲精品在线一区二区| 亚洲第一成人在线| 久久精品国产精品亚洲精品| 亚洲欧美日韩在线观看a三区| 欧美~级网站不卡| 噜噜噜躁狠狠躁狠狠精品视频| 欧美日一区二区在线观看| 猛男gaygay欧美视频| 国产老肥熟一区二区三区| 一本大道av伊人久久综合| 91久久久久久久久久久久久| 亚洲欧美日韩成人| 99热精品在线观看| 久久久www成人免费毛片麻豆| 亚洲欧美日韩在线播放| 欧美日韩免费视频| 亚洲国产一区二区三区青草影视| 亚洲国产精品va在看黑人| 欧美一区二区视频97| 91久久亚洲| 久久久久久久一区| 久久精品道一区二区三区| 欧美日韩亚洲一区二区| 亚洲国产欧美一区二区三区同亚洲 | 国产精品青草久久| 性久久久久久久久| 理论片一区二区在线| 国产麻豆午夜三级精品| 久久久999精品免费| 免费的成人av| 亚洲精品视频免费| 国产精品久久久久aaaa九色| 午夜精品偷拍| 欧美激情一区在线| 在线亚洲伦理| 国产三级欧美三级日产三级99| 欧美一区免费视频| 亚洲国产精品久久久久久女王| 中文av一区二区| 国产欧美日韩精品丝袜高跟鞋| 久久精品国产亚洲a| 免费在线欧美黄色| 亚洲婷婷在线| 国产一区二区激情| 欧美日产在线观看| 欧美亚洲综合网| 亚洲黑丝在线| 久久国产综合精品| 亚洲毛片在线| 国产一区二区三区四区五区美女| 美腿丝袜亚洲色图| 亚洲一区二区三区欧美| 欧美成人亚洲成人日韩成人| 亚洲男人的天堂在线| 亚洲第一页自拍| 国产乱码精品| 欧美日韩国产在线看| 久久久久久久波多野高潮日日 | 久久激情综合| 亚洲精品色婷婷福利天堂| 国产日韩欧美在线视频观看| 欧美成人嫩草网站| 欧美在线观看视频| 亚洲日本aⅴ片在线观看香蕉| 久久久最新网址| 亚洲女性喷水在线观看一区| 亚洲精品国产精品乱码不99| 国产视频久久久久久久| 欧美三级小说| 欧美不卡在线视频| 久久国产精品色婷婷| 亚洲小少妇裸体bbw| 亚洲区在线播放| 亚洲二区在线| 你懂的一区二区| 久久久亚洲影院你懂的| 亚欧美中日韩视频| 亚洲一区精品在线| 日韩午夜免费| 亚洲免费久久| 日韩网站免费观看| 亚洲日本黄色| 亚洲激情成人| 最新成人在线| 亚洲精品一级| 日韩视频在线观看国产| 亚洲美女黄网| 一本大道久久a久久精品综合 | 国产精品高潮呻吟视频| 欧美日韩三级一区二区| 欧美人与性动交a欧美精品| 欧美a级大片| 欧美精品一区二区精品网| 免费看亚洲片| 欧美韩日亚洲| 欧美视频一区二区三区…| 欧美亚洲成人精品| 国产精品久久久久久超碰| 国产精品久久久久三级| 国产美女精品一区二区三区| 国产视频欧美| 伊人婷婷久久| 日韩视频中文字幕| 亚洲欧美卡通另类91av | 亚洲精品免费电影| 一区二区三区国产盗摄| 亚洲一区二区久久| 香蕉av福利精品导航| 久久视频在线视频| 欧美福利视频| 一区二区三区www| 久久aⅴ国产欧美74aaa| 免费亚洲一区| 欧美日韩综合在线| 国产自产在线视频一区| 亚洲人成在线观看一区二区| 一区二区国产在线观看| 欧美一级理论片| 欧美激情一区二区三区在线| 在线亚洲欧美视频| 久久久蜜桃精品| 欧美视频在线一区| 精品不卡一区| 亚洲欧美一区二区原创| 免费成人av资源网| 亚洲一区二区高清| 老牛影视一区二区三区| 国产精品日日摸夜夜添夜夜av| 一色屋精品亚洲香蕉网站| 一区二区三区蜜桃网| 久久婷婷国产麻豆91天堂| 日韩亚洲欧美精品| 久久久一本精品99久久精品66| 欧美日韩免费观看一区| 黄色成人免费网站| 亚洲欧美日韩国产一区| 亚洲福利视频免费观看| 欧美亚洲系列| 国产精品视频久久一区| 日韩一区二区精品视频| 久久伊人一区二区| 亚洲欧美国产日韩中文字幕|