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

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

 

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

2.標準頭文件用#inclue<>
   自定義的頭文件用 #include “”

3.預防多次包含偶同一頭文件
  #ifndef  SALE
 #define  SALE //表示接受一個名字并定義該名字為預處理器變量
  //....
   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 強制類型轉(zhuǎn)換
const_cast<>()轉(zhuǎn)換掉表達式的const性質(zhì)
static_cast<>()很適合將一個較大的類型轉(zhuǎn)換成一個較小的類型。

16.函數(shù)的參數(shù)
int fun(int *p) 可以改變指針所指的對象的值

int fun(int *p) 如果保護指針所指的參數(shù)的值,要加上const  int f(const int *p)

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

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

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

復制龐大而復雜的值有昂貴的開銷。為了避免傳遞副本的開銷,可將形參指定為引用類型。對引用形參的任何修改會直接影響實參本身。應將不需要修改相應實參的引用形參定義為 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ù)組大小成為形參和實參的一部分,編譯器會檢查兩者是否匹配。

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

30默認實參
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)用點直接把函數(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 值常量表達式進行初始化或賦值

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

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

 ofstream &print(ofstream&); 

45.輸出緩沖區(qū)的管理
統(tǒng)將字符串字面值存儲在與流 os 關(guān)聯(lián)的緩沖區(qū)中。下面幾種情況將導致緩沖區(qū)的內(nèi)容被刷新,即寫入到真實的輸出設(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; 
    當輸入流與輸出流綁在一起時,任何讀輸入流的嘗試都將首先刷新其輸出流關(guān)聯(lián)的緩沖區(qū)。標準庫將cout 與 cin 綁在一起,因此語句:cin >> ival;導致 cout 關(guān)聯(lián)的緩沖區(qū)被刷新。


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

47成員函數(shù):
在類內(nèi)部定義的函數(shù)默認為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ù)初始化列表沒有顯示提及的每個成員,運行該類型的默認構(gòu)造函數(shù),內(nèi)置貨符合類型的初始值依賴于對象的作用域:在局部作用域這些函數(shù)不被初始化,在全局作用域被初始化為0.
沒有默認構(gòu)造函數(shù)的類類型成員,以及const或引用類型的成員,都必須在初始化列表進行初始化。
按照與聲明一致的次序編寫構(gòu)造函數(shù)初始化列表是個好主意。

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

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

54復制構(gòu)造函數(shù)
復制構(gòu)造函數(shù)只有一個形參,該形參(常用const修飾)是對該類類型的引用,當定義一個新對象并用一個同類型的對象對他進行初始化的時候,是顯式得使用復制構(gòu)造函數(shù),將該類型的對象傳遞給函數(shù)uo從函數(shù)返回該類型的對象的時候,是隱式得使用復制構(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為了避免復制,類必須顯式聲明復制構(gòu)造函數(shù)為private
然而這樣類的友元和成員仍可以復制,如果要連友元和成員的復制也禁止,可以定義一個private的復制構(gòu)造函數(shù)但不對其定義。

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

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

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

59定義轉(zhuǎn)換和操作符
(1)不要定義相互轉(zhuǎn)換的類,機如果類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)換,讓標準抓包換提供到其他算術(shù)類型的轉(zhuǎn)換

60基類成員函數(shù)
成員函數(shù)默認為非虛函數(shù),對f非虛函數(shù)的調(diào)用在編譯時確定,除了構(gòu)造函數(shù),其他非static成員函數(shù)都可以是虛函數(shù),虛函數(shù)運行時動態(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,必須通過基類類型的引用或指針進行調(diào)用

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

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

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

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

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

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

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

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

70構(gòu)造函數(shù)不能是虛函數(shù),復制操作符最好不要是虛函數(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.

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

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

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

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

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

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

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

78c++內(nèi)存分配方式
(1)allocator 類
(2)標準庫中的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 的標準庫函數(shù)分配足夠大的原始的為類型化的內(nèi)存2.以保存指定內(nèi)存的一個對象;運行該類型的一個構(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運行類型識別(RTTI)
(1)typeid操作符,返回指針或引用類型所致對象的實際類型
base *pb;
derived *pd;
if(typeid(*pb) == typeid(*pd))
{
   //測試對象動態(tài)類型
}
if(typeid(pb) == typed(pd))
{
  //測試指針的靜態(tài)編譯的類型,永遠不等
}
(2)dynamic_cast操作符,將基類類型的指針或引用安全轉(zhuǎn)化為派生類類型的指針或引用
dynamic_cast<*derived>(BasePtr)
81類成員函數(shù)指針和成員指針
類數(shù)據(jù)成員指針定義:
 類型 類名::* name
成員函數(shù)指針定義
返回類型 (類名::指針名 *)(形參列表)

82volatile限定符 

直接處理硬件的程序常具有這樣的數(shù)據(jù)成員,它們的值由程序本身直接控制之外的過程所控制。例如,程序可以包含由系統(tǒng)時鐘更新的變量。當可以用編譯器的控制或檢測之外的方式改變對象值的時候,應該將對象聲明為 volatile。關(guān)鍵字 volatile 是給編譯器的指示,指出對這樣的對象不應該執(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免费一区二区三区| 欧美大片免费久久精品三p| 久久不射中文字幕| 久久成人精品| 欧美福利视频网站| 欧美激情视频在线播放| 欧美本精品男人aⅴ天堂| 欧美日韩精品综合在线| 国产精品美女在线观看| 国产伦精品一区二区三区视频孕妇 | 久久精品国产99国产精品澳门| 亚洲天堂网站在线观看视频| 亚洲自拍三区| 欧美xx视频| 国产一区二区三区四区| 91久久久久久久久| 午夜视频一区在线观看| 欧美激情第3页| 一区二区三区欧美成人| 欧美在线视频日韩| 欧美日韩福利| 在线观看中文字幕不卡| 久久av红桃一区二区小说| 亚洲大胆视频| 亚洲精品一区二区三区蜜桃久| 欧美一区二区三区喷汁尤物| 欧美日韩精品欧美日韩精品一| 国产日韩欧美日韩| 亚洲欧美高清| 一区二区三区日韩在线观看 | 一区二区三区精品| 欧美激情一区二区久久久| 久久精品国产99| 激情欧美一区| 麻豆国产精品777777在线| 欧美亚洲视频在线观看| 欧美午夜精品久久久久免费视| 亚洲品质自拍| 亚洲精品日韩在线| 欧美在线视频一区二区| 欧美在线三区| 最新日韩在线| 亚洲人永久免费| 欧美激情亚洲一区| 美女在线一区二区| 日韩视频欧美视频| 一本色道久久88综合亚洲精品ⅰ| 欧美激情在线播放| 亚洲黄色一区二区三区| 亚洲国产一区二区三区a毛片| 久久米奇亚洲| 亚洲天堂av在线免费观看| 亚洲午夜精品| 伊人久久大香线蕉综合热线| 亚洲美女电影在线| 国产亚洲精品美女| 亚洲人精品午夜在线观看| 国产喷白浆一区二区三区| 欧美成人精品在线观看| 国产精品国码视频| 亚洲人妖在线| 亚洲国产视频一区二区| 欧美在线观看一区| 亚洲一区二区三区三| 久久综合国产精品| 久久亚洲欧美| 国际精品欧美精品| 午夜一级久久| 久久国产日韩| 国产啪精品视频| 久久国产精品久久w女人spa| 欧美一区二区三区免费视| 欧美日韩1区2区| 亚洲肉体裸体xxxx137| 亚洲第一成人在线| 欧美第一黄网免费网站| 91久久久久| 亚洲欧美成人网| 国产精品自拍在线| 久久精品视频va| 国产视频欧美| 另类欧美日韩国产在线| 欧美va天堂| 亚洲手机视频| 国产综合精品| 欧美日韩另类在线| 午夜久久福利| 亚洲人成网站777色婷婷| 亚洲欧美日韩成人| 在线国产精品播放| 国产精品v欧美精品v日韩精品 | 亚洲中午字幕| 国产视频一区二区三区在线观看| 久久超碰97人人做人人爱| 亚洲欧洲一区二区天堂久久| 欧美专区在线观看| 亚洲精选一区| 一区在线免费| 国产午夜精品理论片a级大结局| 久久亚洲一区二区| 午夜精品三级视频福利| 亚洲精选国产| 亚洲精品国产精品国自产观看浪潮| 欧美一区中文字幕| 亚洲一区二区在线观看视频| 亚洲精品美女在线| 亚洲人成在线播放网站岛国| 在线成人性视频| 亚洲国产精品免费| 国产亚洲精品自拍| 狠狠色丁香婷婷综合影院| 国产欧美不卡| 国产亚洲欧美日韩一区二区| 国产伦精品一区二区三区四区免费 | 国产精品久久久久久久9999| 欧美日韩视频一区二区| 欧美a级一区二区| 久久一本综合频道| 久热精品视频在线观看一区| 久久久久久电影| 欧美大片免费观看| 欧美午夜国产| 在线欧美福利| 亚洲宅男天堂在线观看无病毒| 亚洲制服av| 欧美成va人片在线观看| 亚洲伦理中文字幕| 欧美伊人久久大香线蕉综合69| 久久精品亚洲精品国产欧美kt∨| 久久人人爽人人爽| 欧美三级在线视频| 今天的高清视频免费播放成人| 亚洲精品免费网站| 久久免费国产| 亚洲自拍偷拍一区| 免费看成人av| 激情婷婷欧美| 亚洲欧美三级在线| 亚洲精品三级| 蜜臀久久99精品久久久画质超高清| 欧美日韩亚洲系列| 亚洲精品中文字幕有码专区| 久久精品一本| 欧美一区二区三区电影在线观看| 欧美激情精品久久久久久免费印度| 国产一区二区高清不卡| 亚洲女同精品视频| 在线一区二区三区做爰视频网站| 免费成人性网站| 亚洲国产成人久久综合一区| 久久一区二区精品| 久久精品在这里| 精品动漫3d一区二区三区| 久久精品一区四区| 久久精品99国产精品日本 | 久久aⅴ国产紧身牛仔裤| 午夜日韩视频| 在线观看久久av| 亚洲激情国产| 国产精品人人做人人爽人人添| 亚洲一区二区三区视频播放| 亚洲伊人观看| 曰韩精品一区二区| 最新国产成人在线观看| 欧美日韩在线视频观看| 香蕉久久国产| 久久婷婷久久一区二区三区| 亚洲国产精品一区在线观看不卡 | 亚洲免费观看高清完整版在线观看熊 | 久久久久一本一区二区青青蜜月| 亚洲国产精选| 中文日韩在线| 136国产福利精品导航| 99xxxx成人网| 亚洲福利在线看| 性欧美大战久久久久久久久| 亚洲成人在线免费| 亚洲一级免费视频| 亚洲精品视频免费| 久久全球大尺度高清视频| 欧美一区二区观看视频| 欧美精品少妇一区二区三区| 久久精品在线观看| 国产精品啊v在线| 日韩亚洲精品电影| 亚洲精品孕妇| 欧美高清视频一区二区三区在线观看 | 欧美电影免费观看网站| 久久久久免费| 伊人久久av导航| 蜜桃久久av一区| 亚洲精品久久久久久久久| 亚洲日本欧美| 欧美日韩一区二区三区免费| 亚洲精品国精品久久99热一| 中文在线不卡| 国产精品影音先锋|