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

ccyy's coding zone
往前走,不要留戀路邊的風(fēng)景.
posts - 25,comments - 9,trackbacks - 0
    這段時間掃了C++Primer,自己覺得比較有用的tips,僅作為自己參考...

 

1.如果要在多個變量中使用一個const變量,可以在一個頭文件中定義,然后再其他文件中include<>
  或者可以在c++的源文件中定義,然后才其他源文件中extern 

2.標(biāo)準(zhǔn)頭文件用#inclue<>
   自定義的頭文件用 #include “”

3.預(yù)防多次包含偶同一頭文件
  #ifndef  SALE
 #define  SALE //表示接受一個名字并定義該名字為預(yù)處理器變量
  //....
   define of class and relate function
  #endif

4.迭代器iterator的begin()操作返回的迭代器容器的第一個元素,end()返回容器的迭代器指向容器最后一個元素的下一個元素

5.如果不改變?nèi)萜鞯膬?nèi)容,只做讀操作,使用const_iterator,
區(qū)別于const 的iterator,聲明一個const 迭代器,必須初始化,且一旦初始化后就不能改變。

6.迭代器的算術(shù)操作
iter + n 產(chǎn)生一個新的迭代器,位置指向iter指向元素之后n各的位置
iter1 - ite4r2 返回兩個迭代器對象的距離

7.任何改變vector長度的操作都會使已存在的迭代器失效,如push_back

8.指針的初始化
0
類型匹配的對象的地址
另一對象之后的下一地址
同類型的另一個有效指針

9.void* 指針可以保存任何對象的地址
表明指針只與一個地址相關(guān),并不知道地址上所存的對象類型,不能用 void *操縱它所指的對象

10. #include <cstddef>
size_t unsigned 用來指明數(shù)組的長度
ptrdiff_t unsigned  用來指明指針的距離

11
指向const對象的指針
const double * cptr;
并不是指針本身是const的,而是所指的對象是const的,不能通過cptr修改所指對象的值,也不能把const對象的地址賦值給非const指針,

const 指針
int *const p = &num;
必須在定義時初始化。

指向const 對象的const 指針
const double *const ptr = &pi;

12.string .c_str()返回const char 類型的指針


13sizeof返回size_t類型,計算數(shù)組元素的個數(shù)
 n = sizeof(arr)/sizeof(*arr);

14.算術(shù)轉(zhuǎn)換
int + double -> double
float + double -> double
int = double -> int
float = double -> float
chat + float -> float
short + long -> long
int + unsigned long -> unsigned long

15 強(qiáng)制類型轉(zhuǎn)換
const_cast<>()轉(zhuǎn)換掉表達(dá)式的const性質(zhì)
static_cast<>()很適合將一個較大的類型轉(zhuǎn)換成一個較小的類型。

16.函數(shù)的參數(shù)
int fun(int *p) 可以改變指針?biāo)傅膶ο蟮闹?/span>

int fun(int *p) 如果保護(hù)指針?biāo)傅膮?shù)的值,要加上const  int f(const int *p)

void fun(const int i) 不能改變實(shí)參的的局部副本,can read but can't write to i ;

17 引用
引用形參直接關(guān)聯(lián)到所綁定的對象.void swap(int &a , int &b)

像函數(shù)傳遞大型對象的時候,利用const引用避免復(fù)制,

復(fù)制龐大而復(fù)雜的值有昂貴的開銷。為了避免傳遞副本的開銷,可將形參指定為引用類型。對引用形參的任何修改會直接影響實(shí)參本身。應(yīng)將不需要修改相應(yīng)實(shí)參的引用形參定義為 const 引用

非const引用的形參只能與同類型的非const的對象關(guān)聯(lián).
18 數(shù)組形參的定義
void f (int *)
void f (int [])
void f (int [10])
以上三種都等價為 void f(int *)

19 通過引用傳遞數(shù)組
void f(int (&arr)[100])
傳遞的是數(shù)組的引用本身,數(shù)組大小成為形參和實(shí)參的一部分,編譯器會檢查兩者是否匹配。

29返回值
返回非引用類型,函數(shù)會在調(diào)用出將函數(shù)返回值復(fù)制給臨時對象。
返回引用返回的是對象本身,不要返回局部對象的引用
   const string &f(const string & s)
  {   string ret = s; return ret ;}//err
不要返回指向局部對象的指針(懸垂指針)

30默認(rèn)實(shí)參
string ScreenInit(string::size_type with = 24 ,string::size_type heigth = 59 );
string screen = ScreenInit();
screen = ScreenInit(20)
screen = ScreenInit(20,90)


40將函數(shù)指定為內(nèi)聯(lián)是建議編譯器在調(diào)用點(diǎn)直接把函數(shù)代碼展開,內(nèi)聯(lián)函數(shù)避免函數(shù)調(diào)用的開銷,內(nèi)聯(lián)函數(shù)必須在頭文件中定義,


41const成員函數(shù),在參數(shù)列表后面加上const ,則const成員函數(shù)不能改變調(diào)用該函數(shù)的對象。

42在局部聲明的變量名字將屏蔽在全局生命的同名名字,這個性質(zhì)對函數(shù)名也同樣成立。

43.函數(shù)指針
bool (*pf)(const string &, const string &); 
typedef bool (*cmpFcn)(const string &, const string &); 
圓括號不可以省略。 
函數(shù)指針只能通過同類型的函數(shù)或函數(shù)指針或 0 值常量表達(dá)式進(jìn)行初始化或賦值

44.IO對象
IO對象不可復(fù)制或賦值,不可以存在vector等容器中.

形參或返回類型也不能為流類型。如果需要傳遞或返回 IO 對象,則必須傳遞或返回指向該對象的指針或引用  

 ofstream &print(ofstream&); 

45.輸出緩沖區(qū)的管理
統(tǒng)將字符串字面值存儲在與流 os 關(guān)聯(lián)的緩沖區(qū)中。下面幾種情況將導(dǎo)致緩沖區(qū)的內(nèi)容被刷新,即寫入到真實(shí)的輸出設(shè)備或者文件

  1. 程序正常結(jié)束。作為 main 返回工作的一部分,將清空所有輸出緩沖區(qū)。

  2. 在一些不確定的時候,緩沖區(qū)可能已經(jīng)滿了,在這種情況下,緩沖區(qū)將會在寫下一個值之前刷新。

  3. 用操縱符顯式地刷新緩沖區(qū),例如行結(jié)束符 endl

  4. 在每次輸出操作執(zhí)行完后,用 unitbuf 操作符設(shè)置流的內(nèi)部狀態(tài),從而清空緩沖區(qū)。

  5. 可將輸出流與輸入流關(guān)聯(lián)(tie)起來。在這種情況下,在讀輸入流時將刷新其關(guān)聯(lián)的輸出緩沖區(qū)。
    cout << "hi!" << flush;      // flushes the buffer; adds no data     
    cout << "hi!" << ends;       // inserts a null, then flushes the buffer     
    cout << "hi!" << endl;       // inserts a newline, then flushes the buffer

    unitbuf 操縱符。這個操縱符在每次執(zhí)行完寫操作后都刷新流:

        cout << unitbuf << "first" << " second" << nounitbuf; 
    當(dāng)輸入流與輸出流綁在一起時,任何讀輸入流的嘗試都將首先刷新其輸出流關(guān)聯(lián)的緩沖區(qū)。標(biāo)準(zhǔn)庫將cout 與 cin 綁在一起,因此語句:cin >> ival;導(dǎo)致 cout 關(guān)聯(lián)的緩沖區(qū)被刷新。


46stringstream 可將多種數(shù)據(jù)格式與string類型進(jìn)行自動轉(zhuǎn)化

47成員函數(shù):
在類內(nèi)部定義的函數(shù)默認(rèn)為inline.
將關(guān)鍵字const加在形參列表之后,const成員函數(shù)不能改變其所操作對象的數(shù)據(jù)成員。

48const成員函數(shù)返回*this
普通非const成員函數(shù)的this是一個指向類類型的const指針,可以改變this指向的值,不能改變this所保存的地址,而const成員函數(shù),this的類型是一個指向const類型對象的const指針。const成員函數(shù)只能返回*this作為const 引用,

50mutable數(shù)據(jù)成員
將類成員聲明為mutable,任意const對象,或者const函數(shù)丟可以改變它的值

51構(gòu)造函數(shù)
不管成員是否在構(gòu)造函數(shù)中顯示初始化,類類型的數(shù)據(jù)成員總是在初始化階段初始化。在構(gòu)造函數(shù)初始化列表沒有顯示提及的每個成員,運(yùn)行該類型的默認(rèn)構(gòu)造函數(shù),內(nèi)置貨符合類型的初始值依賴于對象的作用域:在局部作用域這些函數(shù)不被初始化,在全局作用域被初始化為0.
沒有默認(rèn)構(gòu)造函數(shù)的類類型成員,以及const或引用類型的成員,都必須在初始化列表進(jìn)行初始化。
按照與聲明一致的次序編寫構(gòu)造函數(shù)初始化列表是個好主意。

52默認(rèn)構(gòu)造函數(shù)
定義一個對象是沒有提供初始化式,就是使用默認(rèn)構(gòu)造函數(shù),為所有形參提供默認(rèn)實(shí)參的構(gòu)造函數(shù)也定義了默認(rèn)構(gòu)造函數(shù)

53static成員和成員函數(shù) 
非static成員存在于每個類類型的對象中,而static成員獨(dú)立于該類的任意對象而存在,美國各static數(shù)據(jù)成員是與該類關(guān)聯(lián)的對象。
static成員函數(shù)沒有this形參,可以直接訪問所屬類的static成員,但是不能直接使用費(fèi)static成員

54復(fù)制構(gòu)造函數(shù)
復(fù)制構(gòu)造函數(shù)只有一個形參,該形參(常用const修飾)是對該類類型的引用,當(dāng)定義一個新對象并用一個同類型的對象對他進(jìn)行初始化的時候,是顯式得使用復(fù)制構(gòu)造函數(shù),將該類型的對象傳遞給函數(shù)uo從函數(shù)返回該類型的對象的時候,是隱式得使用復(fù)制構(gòu)造函數(shù)。
string null_book = "9-999-99999-9"; // copy-initialization      
string dots(10, '.');               // direct-initialization      
string empty_copy = string();       // copy-initialization      
string empty_direct;                // direct-initializat

 55為了避免復(fù)制,類必須顯式聲明復(fù)制構(gòu)造函數(shù)為private
然而這樣類的友元和成員仍可以復(fù)制,如果要連友元和成員的復(fù)制也禁止,可以定義一個private的復(fù)制構(gòu)造函數(shù)但不對其定義。

56賦值操作符重載
當(dāng)操作符為成員函數(shù)的時候,第一個操作數(shù)隱式地綁定到this指針,即this綁定到左操作數(shù)的指針,右操作數(shù)一般為const傳遞的引用,復(fù)制操作返回同一類型的引用。

57析構(gòu)函數(shù)
析構(gòu)函數(shù)沒有參數(shù)也不能重載,即使我們編寫了自己的析構(gòu)函數(shù),合成析構(gòu)函數(shù)仍然運(yùn)行,合成析構(gòu)函數(shù)不刪除指針成員所指向的對象,合成析構(gòu)函數(shù)按對象創(chuàng)建的時間逆序撤銷每個非static成員。

58重載操作符
賦值(=)、下標(biāo)([])、調(diào)用(())和成員訪問箭頭(->)等操作符必須定義為成員,將這些操作符定義為非成員函數(shù)將在編譯時標(biāo)記為錯誤
復(fù)合賦值操作通常定義為類的成員,但不一定要定義成類的成員
改變對象狀態(tài)或與給定類型緊密聯(lián)系的操作,如自增,自減和解引用操作,都應(yīng)該定義為類的成員
對稱的操作符,如算術(shù)操作符,相等操作度關(guān)系操作符和類操作符,最好定義為普通非成員函數(shù)
IO操作必須為非成員函數(shù)
賦值必須返回對*this的引用
operator + 返回一個對象,而operator +=返回一個引用
定義下標(biāo)操作符[]時,一般定義兩個版本,一個為非const成員返回引用,另一個為const成員返回const引用。
class S
{
    public :
          int &operator[] (const size_t);
          const int &operator[]( const size_t)const;
}

59定義轉(zhuǎn)換和操作符
(1)不要定義相互轉(zhuǎn)換的類,機(jī)如果類Foo具有接受類 Bar的對象的構(gòu)造函數(shù),不要再為類Bar定義到類型Foo的構(gòu)造函數(shù)
(2)避免到內(nèi)置算術(shù)類型的轉(zhuǎn)換,具體而言,如果定義到算術(shù)類型的轉(zhuǎn)換,不要定義接受算術(shù)類型的操作符的重載版本,如果用戶需要使用這些操作符,轉(zhuǎn)換操作副將轉(zhuǎn)換你所定義的類型的對象,然后可以使用內(nèi)置操作符
不要定義轉(zhuǎn)換到一個以上算術(shù)類型的轉(zhuǎn)換,讓標(biāo)準(zhǔn)抓包換提供到其他算術(shù)類型的轉(zhuǎn)換

60基類成員函數(shù)
成員函數(shù)默認(rèn)為非虛函數(shù),對f非虛函數(shù)的調(diào)用在編譯時確定,除了構(gòu)造函數(shù),其他非static成員函數(shù)都可以是虛函數(shù),虛函數(shù)運(yùn)行時動態(tài)綁定,

61訪問控制和繼承
public private和protect
用戶可以訪問類的public成員,不能訪問private成員
private成員只能由基類的成員或友元訪問
派生類對象對基類的public和private成員的訪問權(quán)限和程序中任意其他部分一樣,可以訪問public不能訪問private。
protect成員不能被類的用戶訪問,可以被類的派生類訪問,派生類只能通過派生類的對象訪問基類的protect成員,派生類對基類類型對象的proteced成員沒有訪問權(quán)限

62虛函數(shù)動態(tài)綁定
出發(fā)動態(tài)綁定的兩個條件:1.指定為virtual,2,必須通過基類類型的引用或指針進(jìn)行調(diào)用

63派生類虛函數(shù)調(diào)用基類版本的時候,必須顯式使用作用域操作符

64虛函數(shù)的基類版本和派生類版本使用不同的默認(rèn)實(shí)參,通過基類的指針或引用調(diào)用,但實(shí)際執(zhí)行的是派生類的版的時候會出問題,因為虛函數(shù)基類版本定義的默認(rèn)實(shí)參會傳給派生類的版本。

65pubilc,private,和protect繼承
public inheritance :基類的public成員為派生類的public成員,基類的protect成員為派生類的protect成員
private inheritance:基類的所有成員在派生類中為private成員
protect inheritance:基類的public成員和protect成員在派生類中為protect成員
派生類不能訪問基類的protect成員
類的默認(rèn)的繼承為private,struct默認(rèn)的繼承為public的

65繼承和static成員
如果基類定義了static成員,則整個繼承層次中只有一個這樣的成員,無論基類派生出多少個派生類,沒個static成員只有一個實(shí)例

66派生類到基類的轉(zhuǎn)換
可以用派生類的對象對基類對象進(jìn)行賦值或初始化
引用轉(zhuǎn)換不同于轉(zhuǎn)換對象,將派生類對象傳給希望接受基類對象的函數(shù)是,該派生類對象的基類部分被復(fù)制到形參

67從基類到派生類的自動轉(zhuǎn)換時不存在的

68如果派生類顯示定義復(fù)制構(gòu)造函數(shù)或賦值操作符,則該定義將完全覆蓋默認(rèn)定義,必須顯示的調(diào)用繼承的復(fù)制構(gòu)造函數(shù)和賦值操作符對基類成分以及類自己的成員進(jìn)行復(fù)制或賦值。
class Derived{
   public: 
        Derived(const derived &d):Base(d) { other menber initialization}
}

69即使沒有工作要做,繼承層次的跟類也應(yīng)該定義一個虛析構(gòu)函數(shù)

70構(gòu)造函數(shù)不能是虛函數(shù),復(fù)制操作符最好不要是虛函數(shù)(虛函數(shù)的形參列表等必須相同,會引起混淆)

71如果在構(gòu)造函數(shù)或者析構(gòu)函數(shù)效用虛函數(shù),則調(diào)用的是為構(gòu)造函數(shù)或析構(gòu)函數(shù)自身類型定義的版本。

72與基類成員同名的派生類成員將屏蔽對基類成員的直接訪問,成員函數(shù)名也一樣。

73重載成員函數(shù)
如果派生類定義了重載成員函數(shù),則通過派生類類型之unengfangwen派生類中重定義的那些成員,如果要訪問,加個using聲明(?)

74容器與繼承
如果定義了一個基類類型的容器,派生類對象在賦值給容器的時候,對象的派生屬性會被切掉,只保留基類的成分

75c++繼承如火確定函數(shù)調(diào)用
1.

首先確定進(jìn)行函數(shù)調(diào)用的對象、引用或指針的靜態(tài)類型。
2.

在該類中查找函數(shù),如果找不到,就在直接基類中查找,如此循著類的繼承鏈往上找,直到找到該函數(shù)或者查找完最后一個類。如果不能在類或其相關(guān)基類中找到該名字,則調(diào)用是錯誤的。
3.

一旦找到了該名字,就進(jìn)行常規(guī)類型檢查,查看如果給定找到的定義,該函數(shù)調(diào)用是否合法。
4.

假定函數(shù)調(diào)用合法,編譯器就生成代碼。如果函數(shù)是虛函數(shù)且通過引用或指針調(diào)用,則編譯器生成代碼以確定根據(jù)對象的動態(tài)類型運(yùn)行哪個函數(shù)版本,否則,編譯器生成代碼直接調(diào)用函數(shù)。

76模板
模板形參是const引用
函數(shù)體中的測試之用 < 比較
多個類型形參的實(shí)參必須完全匹配 

77異常
異常通過拋出(throw)對象引發(fā),執(zhí)行throw的時候,不會執(zhí)行在throw后面的語句,而是將控制從throw轉(zhuǎn)移到匹配的chatch。
處理異常的時候會四方局部存儲,被拋出的對象不能再局部存儲,而是用tw表達(dá)式出事話一個床位異常對象的特殊對象。
當(dāng)拋出一個表達(dá)式的時候,被拋出的對象的靜態(tài)編譯時的類型將決定異常對象的類型,最好不要拋出指針
當(dāng)catch結(jié)束的時候,在緊接在與該try塊相關(guān)的最后一個cahtch子句只有的點(diǎn)繼續(xù)執(zhí)行
一個快可以通過調(diào)用new動態(tài)分配內(nèi)存,如果該塊因異常退出,編譯器不會刪除該指針,已分配的內(nèi)存將不會釋放。
在查找匹配的catch期間,不是尋找最佳匹配,而是選中第一個找到的可以處理該異常的cahtch
如果被拋出的對象是派生類類型的,但由接受基類類型的catch處理,cahtch將不能使用派生類特有的所有成員,所以cahtch子句處理因繼承而相關(guān)的類型的異常,它就應(yīng)該將自己的形參定義為引用。
重新拋出throw,當(dāng)catch無法處理的時候,將重新拋出throw將異常傳遞給函數(shù)調(diào)用鏈中更上層的函數(shù)
exception類所地被你故意的唯一操作時一個名為what的虛成員,該函數(shù)返回,const char*
可能存在異常的程序以及分配資源的程序應(yīng)該使用類來管理那些資源,如果函數(shù)因異常而提早退出,編譯器就運(yùn)行類的析構(gòu)函數(shù)最為異常處理過程的一部分。

77auto_ptr
為異常安全的內(nèi)存分配使用auto_ptr,
當(dāng)復(fù)制auto_ptr對象或者將它的值付給其他arto_por對象的時候,將基礎(chǔ)對象的所有權(quán)從原來的auto_ptr對象傳給副本,原來的auto_ptr對象重置為未綁定狀態(tài)
賦值操作刪除做操作數(shù)指向的對象
應(yīng)該只用get詢問auto_ptr對象或者使用返回的指針值,不能用get作為創(chuàng)建其他auto_ptr的實(shí)參
調(diào)用auto_ptr的reset的時候,會刪除auto_ptr所指向的對象。
不要使用兩個auto_ptr指向同一對象,不要使用auto保存對象保存指向動態(tài)分配數(shù)組的指針,以為當(dāng)auto_ptr被刪除的時候,它使用的是delete操作符,不是delete[]

78c++內(nèi)存分配方式
(1)allocator 類
(2)標(biāo)準(zhǔn)庫中的oprator new和operator delete函數(shù)

79new operator(primerl里面成為operator new 函數(shù))  operator new 和placement new
new operator :
(1)string *sp = new string("abc");
1.先調(diào)用operator new 的標(biāo)準(zhǔn)庫函數(shù)分配足夠大的原始的為類型化的內(nèi)存2.以保存指定內(nèi)存的一個對象;運(yùn)行該類型的一個構(gòu)造函數(shù),用指定初始化式構(gòu)造對象,3.返回指向新分配內(nèi)存并構(gòu)造的指針。
(2)operator new:
void *operator new(size_t)
void *operator new[](size_t)
獲得未構(gòu)造的內(nèi)存
operator detete不會調(diào)用析構(gòu)函數(shù),只會釋放指定內(nèi)存
(3)placement new:(定位new)
new (place_address)type
place_address為一個指針,

80運(yùn)行類型識別(RTTI)
(1)typeid操作符,返回指針或引用類型所致對象的實(shí)際類型
base *pb;
derived *pd;
if(typeid(*pb) == typeid(*pd))
{
   //測試對象動態(tài)類型
}
if(typeid(pb) == typed(pd))
{
  //測試指針的靜態(tài)編譯的類型,永遠(yuǎn)不等
}
(2)dynamic_cast操作符,將基類類型的指針或引用安全轉(zhuǎn)化為派生類類型的指針或引用
dynamic_cast<*derived>(BasePtr)
81類成員函數(shù)指針和成員指針
類數(shù)據(jù)成員指針定義:
 類型 類名::* name
成員函數(shù)指針定義
返回類型 (類名::指針名 *)(形參列表)

82volatile限定符 

直接處理硬件的程序常具有這樣的數(shù)據(jù)成員,它們的值由程序本身直接控制之外的過程所控制。例如,程序可以包含由系統(tǒng)時鐘更新的變量。當(dāng)可以用編譯器的控制或檢測之外的方式改變對象值的時候,應(yīng)該將對象聲明為 volatile。關(guān)鍵字 volatile 是給編譯器的指示,指出對這樣的對象不應(yīng)該執(zhí)行優(yōu)化。

posted on 2011-07-31 19:00 ccyy 閱讀(352) 評論(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| 亚洲欧洲av一区二区| 亚洲制服av| 久久aⅴ国产欧美74aaa| 久久国产黑丝| 亚洲第一精品夜夜躁人人躁| 免费短视频成人日韩| 亚洲国产成人在线视频| 一本一本a久久| 欧美一级午夜免费电影| 久久三级视频| 欧美日韩国产专区| 国产欧美一区二区三区沐欲| 在线看国产日韩| 亚洲日本欧美| 久久成人一区二区| 欧美激情视频免费观看| 一本到高清视频免费精品| 欧美在线视频在线播放完整版免费观看 | 激情综合色综合久久| 亚洲国产一二三| 亚洲欧美日韩在线不卡| 看欧美日韩国产| 一区二区三区欧美亚洲| 久久青青草综合| 国产乱码精品一区二区三区不卡| 亚洲国产成人porn| 亚洲欧美一区二区三区久久 | 美国成人直播| 亚洲影视中文字幕| 欧美高清自拍一区| 黄色国产精品| 性欧美长视频| 在线视频亚洲| 欧美韩日一区二区三区| 国产一区99| 久久精品国产99精品国产亚洲性色 | 亚洲欧美日韩综合国产aⅴ | 国内外成人免费激情在线视频| 99re亚洲国产精品| 裸体素人女欧美日韩| 亚洲伊人伊色伊影伊综合网 | 91久久久久| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲精品在线电影| 欧美v日韩v国产v| 在线成人免费观看| 久久精品国产一区二区三区| 中国成人黄色视屏| 欧美色123| 日韩亚洲欧美一区| 91久久极品少妇xxxxⅹ软件| 久久精品免费| 一区二区在线观看av| 久久精品人人爽| 欧美一区二区三区四区在线观看地址| 欧美视频一区在线观看| 99精品国产高清一区二区| 亚洲第一在线视频| 欧美精品v日韩精品v国产精品| 亚洲国产精品视频| 欧美黄色一区| 欧美精品一级| 亚洲深夜福利视频| 一区二区三区 在线观看视| 欧美体内she精视频| 亚洲欧美一区二区三区久久| 亚洲综合色婷婷| 韩国一区二区三区在线观看| 噜噜噜在线观看免费视频日韩| 久久午夜精品一区二区| 亚洲国产精品久久人人爱蜜臀| 欧美电影免费观看网站| 免费精品视频| 一本一本a久久| 午夜精品剧场| 在线看一区二区| 亚洲第一区在线| 国产精品久久久久av免费| 午夜在线观看免费一区| 久久黄色级2电影| 99riav久久精品riav| 亚洲婷婷在线| 亚洲国产日韩一级| 一区二区三区久久久| 国产一区二区三区在线观看免费| 欧美激情影院| 国产精品视频免费| 欧美成人日韩| 国产精品久久久久久久免费软件| 久久久久.com| 欧美日韩国产限制| 久久久久久一区| 欧美日韩亚洲一区二区三区在线| 亚洲乱码一区二区| 日韩视频一区二区在线观看| 欧美视频亚洲视频| 久久久免费精品视频| 美日韩精品免费| 欧美一进一出视频| 免费在线观看日韩欧美| 亚洲影院在线观看| 快播亚洲色图| 午夜视频一区在线观看| 麻豆九一精品爱看视频在线观看免费| 亚洲视频成人| 欧美国产精品久久| 久久久青草婷婷精品综合日韩| 欧美精品亚洲精品| 免费久久久一本精品久久区| 国产精品黄视频| 亚洲国产精品一区二区久| 国产一区二区欧美| 在线性视频日韩欧美| 亚洲区在线播放| 久久久久久夜| 久久先锋资源| 国产亚洲欧美中文| 亚洲无线一线二线三线区别av| 91久久黄色| 欧美 日韩 国产 一区| 久久久久久久一区二区三区| 国产精品久久久久久久久久久久久| 欧美国产日韩在线| 好看的av在线不卡观看| 性感少妇一区| 欧美在线视频一区二区| 欧美性事免费在线观看| 亚洲精品女av网站| 亚洲第一页自拍| 久久免费视频网站| 久久九九精品| 精品91视频| 久久一区二区三区四区| 久久久最新网址| 激情久久久久| 久久综合色88| 亚洲东热激情| 妖精视频成人观看www| 欧美高清免费| 日韩图片一区| 亚洲一区综合| 国产欧美日韩不卡免费| 午夜国产不卡在线观看视频| 欧美一区亚洲二区| 永久域名在线精品| 老牛影视一区二区三区| 亚洲国产电影| 亚洲欧美电影在线观看| 国产麻豆日韩欧美久久| 欧美一级在线视频| 麻豆av一区二区三区| 亚洲国产99| 国产精品www色诱视频| 亚洲自拍16p| 欧美第一黄色网| 亚洲视频中文字幕| 国产三级精品三级| 久热精品视频在线观看一区| 亚洲电影观看| 亚洲在线免费观看| 狠狠综合久久av一区二区老牛| 久久全球大尺度高清视频| 亚洲欧美日韩一区| 91久久综合亚洲鲁鲁五月天| 亚洲免费观看高清完整版在线观看熊| 欧美国产另类| 亚洲一二三区在线观看| 久久久久青草大香线综合精品| 亚洲国产精品久久久| 国产精品国产a级| 久久久久久久网站| 一区二区三区久久精品| 久热精品视频在线| 亚洲欧美国产精品va在线观看| 精品成人乱色一区二区| 欧美日韩国产色视频| 欧美在线网址| 一二三四社区欧美黄| 欧美777四色影视在线| 亚洲欧美一区二区三区在线 | 国产伦精品一区二区三| 免费精品视频| 欧美一区二区在线看| 亚洲激情国产精品| 久久婷婷国产麻豆91天堂| 亚洲一区二区精品| 亚洲欧洲三级电影| 国产综合久久| 国产精品成人观看视频免费 | 国产一区二区三区网站| 欧美日韩另类国产亚洲欧美一级| 欧美制服丝袜第一页| 中文在线一区| 亚洲裸体俱乐部裸体舞表演av| 欧美成人性网| 久久免费精品视频| 久久av资源网站|