日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++的4种智能指针剖析使用

發布時間:2023/12/14 c/c++ 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++的4种智能指针剖析使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

1. 智能指針背后的設計思想

我們先來看一個簡單的例子:

void remodel(std::string & str) {std::string * ps = new std::string(str);...if (weird_thing()){return;}str = *ps; delete ps;return; }

當(weird_thing()返回true)時,delete將不被執行,因此將導致內存泄露。

如何避免這種問題?有人會說,這還不簡單,直接在return;之前加上delete ps;不就行了。是的,你本應如此,問題是很多人都會忘記在適當的地方加上delete語句(連上述代碼中最后的那句delete語句也會有很多人忘記吧),如果你要對一個龐大的工程進行review,看是否有這種潛在的內存泄露問題,那就是一場災難!
這時我們會想:當remodel這樣的函數終止(不管是正常終止,還是由于出現了異常而終止),本地變量都將自動從棧內存中刪除—因此指針ps占據的內存將被釋放,如果ps指向的內存也被自動釋放,那該有多好啊。
我們知道析構函數有這個功能。如果ps有一個析構函數,該析構函數將在ps過期時自動釋放它指向的內存。但ps的問題在于,它只是一個常規指針,不是有析構凼數的類對象指針。如果它指向的是對象,則可以在對象過期時,讓它的析構函數刪除指向的內存。

這正是 auto_ptr、unique_ptr和shared_ptr這幾個智能指針背后的設計思想。我簡單的總結下就是:將基本類型指針封裝為類對象指針(這個類肯定是個模板,以適應不同基本類型的需求),并在析構函數里編寫delete語句刪除指針指向的內存空間。

因此,要轉換remodel()函數,應按下面3個步驟進行:

  • 包含頭義件memory(智能指針所在的頭文件);
  • 將指向string的指針替換為指向string的智能指針對象;
  • 刪除delete語句。

下面是使用auto_ptr修改該函數的結果:

# include <memory> void remodel (std::string & str) {std::auto_ptr<std::string> ps (new std::string(str));...if (weird_thing ())return; str = *ps; // delete ps; NO LONGER NEEDEDreturn; }

?

2. shared_ptr簡單介紹

STL一共給我們提供了四種智能指針:auto_ptr、unique_ptr、shared_ptr和weak_ptr。
模板auto_ptr是C++98提供的解決方案,C+11已將將其摒棄,并提供了另外兩種解決方案。然而,雖然auto_ptr被摒棄,但它已使用了好多年:同時,如果您的編譯器不支持其他兩種解決力案,auto_ptr將是唯一的選擇。

使用注意點

  • 所有的智能指針類都有一個explicit構造函數,以指針作為參數。比如auto_ptr的類模板原型為:
  • templet<class T> class auto_ptr {explicit auto_ptr(X* p = 0) ; ... };

    ?

  • 因此不能自動將指針轉換為智能指針對象,必須顯式調用:

  • shared_ptr<double> pd; double *p_reg = new double; pd = p_reg; // not allowed (implicit conversion) pd = shared_ptr<double>(p_reg); // allowed (explicit conversion) shared_ptr<double> pshared = p_reg; // not allowed (implicit conversion) shared_ptr<double> pshared(p_reg); // allowed (explicit conversion)

    ?

  • 對全部三種智能指針都應避免的一點:

  • string vacation("I wandered lonely as a cloud."); shared_ptr<string> pvac(&vacation); // No

    pvac過期時,程序將把delete運算符用于非堆內存,這是錯誤的。

?

使用舉例

#include <iostream> #include <string> #include <memory>class report { private:std::string str; public:report(const std::string s) : str(s) {std::cout << "Object created.\n";}~report() {std::cout << "Object deleted.\n";}void comment() const {std::cout << str << "\n";} };int main() {{std::auto_ptr<report> ps(new report("using auto ptr"));ps->comment();}{std::shared_ptr<report> ps(new report("using shared ptr"));ps->comment();}{std::unique_ptr<report> ps(new report("using unique ptr"));ps->comment();}return 0; }

?

?

3. 為什么摒棄auto_ptr?

先來看下面的賦值語句:

auto_ptr< string> ps (new string ("I reigned lonely as a cloud.”); auto_ptr<string> vocation; vocaticn = ps;

上述賦值語句將完成什么工作呢?如果ps和vocation是常規指針,則兩個指針將指向同一個string對象。這是不能接受的,因為程序將試圖刪除同一個對象兩次——一次是ps過期時,另一次是vocation過期時。要避免這種問題,方法有多種:

  • 定義陚值運算符,使之執行深復制。這樣兩個指針將指向不同的對象,其中的一個對象是另一個對象的副本,缺點是浪費空間,所以智能指針都未采用此方案。
  • 建立所有權(ownership)概念。對于特定的對象,只能有一個智能指針可擁有,這樣只有擁有對象的智能指針的構造函數會刪除該對象。然后讓賦值操作轉讓所有權。這就是用于auto_ptr和uniqiie_ptr 的策略,但unique_ptr的策略更嚴格。
  • 創建智能更高的指針,跟蹤引用特定對象的智能指針數。這稱為引用計數。例如,賦值時,計數將加1,而指針過期時,計數將減1,。當減為0時才調用delete。這是shared_ptr采用的策略。

當然,同樣的策略也適用于復制構造函數。
每種方法都有其用途,但為何說要摒棄auto_ptr呢?
下面舉個例子來說明。

#include <iostream> #include <string> #include <memory> using namespace std;int main() {auto_ptr<string> films[5] ={auto_ptr<string>(new string("Fowl Balls")),auto_ptr<string>(new string("Duck Walks")),auto_ptr<string>(new string("Chicken Runs")),auto_ptr<string>(new string("Turkey Errors")),auto_ptr<string>(new string("Goose Eggs"))};auto_ptr<string> pwin;pwin = films[2]; // films[2] loses ownership. 將所有權從films[2]轉讓給pwin,此時films[2]不再引用該字符串從而變成空指針cout << "The nominees for best avian baseballl film are\n";for (int i = 0; i < 5; ++i)cout << *films[i] << endl;cout << "The winner is " << *pwin << endl;cin.get();return 0; }

?

?

運行下發現程序崩潰了,原因在上面注釋已經說的很清楚,films[2]已經是空指針了,下面輸出訪問空指針當然會崩潰了。但這里如果把auto_ptr換成shared_ptr或unique_ptr后,程序就不會崩潰,原因如下:

  • 使用shared_ptr時運行正常,因為shared_ptr采用引用計數,pwin和films[2]都指向同一塊內存,在釋放空間時因為事先要判斷引用計數值的大小因此不會出現多次刪除一個對象的錯誤。
  • 使用unique_ptr時編譯出錯,與auto_ptr一樣,unique_ptr也采用所有權模型,但在使用unique_ptr時,程序不會等到運行階段崩潰,而在編譯器因下述代碼行出現錯誤:
  • unique_ptr<string> pwin; pwin = films[2]; // films[2] loses ownership.

    ?

  • 指導你發現潛在的內存錯誤。
  • 這就是為何要摒棄auto_ptr的原因,一句話總結就是:避免潛在的內存崩潰問題。

?

?

4. unique_ptr為何優于auto_ptr?

?

可能大家認為前面的例子已經說明了unique_ptr為何優于auto_ptr,也就是安全問題,下面再敘述的清晰一點。
請看下面的語句:

auto_ptr<string> p1(new string ("auto") ; //#1 auto_ptr<string> p2; //#2 p2 = p1; //#3

?

?

在語句#3中,p2接管string對象的所有權后,p1的所有權將被剝奪。前面說過,這是好事,可防止p1和p2的析構函數試圖刪同—個對象;

但如果程序隨后試圖使用p1,這將是件壞事,因為p1不再指向有效的數據。

下面來看使用unique_ptr的情況:

unique_ptr<string> p3 (new string ("auto"); //#4 unique_ptr<string> p4; //#5 p4 = p3; //#6

編譯器認為語句#6非法,避免了p3不再指向有效數據的問題。因此,unique_ptr比auto_ptr更安全。

但unique_ptr還有更聰明的地方。
有時候,會將一個智能指針賦給另一個并不會留下危險的懸掛指針。假設有如下函數定義:

unique_ptr<string> demo(const char * s) {unique_ptr<string> temp (new string (s)); return temp; }

并假設編寫了如下代碼:

unique_ptr<string> ps; ps = demo('Uniquely special");

demo()返回一個臨時unique_ptr,然后ps接管了原本歸返回的unique_ptr所有的對象,而返回時臨時的 unique_ptr 被銷毀,也就是說沒有機會使用 unique_ptr 來訪問無效的數據,換句話來說,這種賦值是不會出現任何問題的,即沒有理由禁止這種賦值。實際上,編譯器確實允許這種賦值,這正是unique_ptr更聰明的地方。

總之,黨程序試圖將一個 unique_ptr 賦值給另一個時,如果源 unique_ptr 是個臨時右值,編譯器允許這么做;如果源 unique_ptr 將存在一段時間,編譯器將禁止這么做,比如:

unique_ptr<string> pu1(new string ("hello world")); unique_ptr<string> pu2; pu2 = pu1; // #1 not allowed unique_ptr<string> pu3; pu3 = unique_ptr<string>(new string ("You")); // #2 allowed

其中#1留下懸掛的unique_ptr(pu1),這可能導致危害。而#2不會留下懸掛的unique_ptr,因為它調用 unique_ptr 的構造函數,該構造函數創建的臨時對象在其所有權讓給 pu3 后就會被銷毀。這種隨情況而已的行為表明,unique_ptr 優于允許兩種賦值的auto_ptr 。

當然,您可能確實想執行類似于#1的操作,僅當以非智能的方式使用摒棄的智能指針時(如解除引用時),這種賦值才不安全。要安全的重用這種指針,可給它賦新值。C++有一個標準庫函數std::move(),讓你能夠將一個unique_ptr賦給另一個。下面是一個使用前述demo()函數的例子,該函數返回一個unique_ptr<string>對象:
使用move后,原來的指針仍轉讓所有權變成空指針,可以對其重新賦值。

unique_ptr<string> ps1, ps2; ps1 = demo("hello"); ps2 = move(ps1); ps1 = demo("alexia"); cout << *ps2 << *ps1 << endl;

?

5. weak_ptr的簡單介紹

weak_ptr 是一種不控制對象生命周期的智能指針, 它指向一個 shared_ptr 管理的對象. 進行該對象的內存管理的是那個強引用的 shared_ptr. weak_ptr只是提供了對管理對象的一個訪問手段.?

weak_ptr 設計的目的是為配合 shared_ptr 而引入的一種智能指針來協助 shared_ptr 工作, 它只可以從一個 shared_ptr 或另一個 weak_ptr 對象構造, 它的構造和析構不會引起引用記數的增加或減少.?

定義在 memory 文件中(非memory.h), 命名空間為 std.

?

weak_ptr成員函數

weak_ptr 沒有重載*和->但可以使用 lock 獲得一個可用的 shared_ptr 對象. 注意, weak_ptr 在使用前需要檢查合法性.

expired 用于檢測所管理的對象是否已經釋放, 如果已經釋放, 返回 true; 否則返回 false.
lock 用于獲取所管理的對象的強引用(shared_ptr). 如果 expired 為 true, 返回一個空的 shared_ptr; 否則返回一個 shared_ptr, 其內部對象指向與 weak_ptr 相同.
use_count 返回與 shared_ptr 共享的對象的引用計數.
reset 將 weak_ptr 置空.
weak_ptr 支持拷貝或賦值, 但不會影響對應的 shared_ptr 內部對象的計數.

?

weak_ptr的使用更為復雜一點,它可以指向shared_ptr指針指向的對象內存,卻并不擁有該內存,而使用weak_ptr成員lock,則可返回其指向內存的一個share_ptr對象,且在所指對象內存已經無效時,返回指針空值nullptr。

注意:weak_ptr并不擁有資源的所有權,所以不能直接使用資源。
可以從一個weak_ptr構造一個shared_ptr以取得共享資源的所有權。

?

weak_ptr 使用實例:

#define _CRT_SECURE_NO_WARNINGS#include <iostream> #include <string> #include <memory> #include <vector> #include <map>void check(std::weak_ptr<int> &wp) {std::shared_ptr<int> sp = wp.lock(); // 轉換為shared_ptr<int>if (sp != nullptr){std::cout << "still: " << *sp << std::endl;} else{std::cout << "still: " << "pointer is invalid" << std::endl;} }void mytest() {std::shared_ptr<int> sp1(new int(22));std::shared_ptr<int> sp2 = sp1;std::weak_ptr<int> wp = sp1; // 指向shared_ptr<int>所指對象std::cout << "count: " << wp.use_count() << std::endl; // count: 2std::cout << *sp1 << std::endl; // 22std::cout << *sp2 << std::endl; // 22check(wp); // still: 22sp1.reset();std::cout << "count: " << wp.use_count() << std::endl; // count: 1std::cout << *sp2 << std::endl; // 22check(wp); // still: 22sp2.reset();std::cout << "count: " << wp.use_count() << std::endl; // count: 0check(wp); // still: pointer is invalidreturn; }int main() {mytest();system("pause");return 0; }

?

使用?weak_ptr 解決 shared_ptr 因循環引有不能釋放資源的問題

使用 shared_ptr 時, shared_ptr 為強引用, 如果存在循環引用, 將導致內存泄露. 而 weak_ptr 為弱引用, 可以避免此問題, 其原理:
  對于弱引用來說, 當引用的對象活著的時候弱引用不一定存在. 僅僅是當它存在的時候的一個引用, 弱引用并不修改該對象的引用計數, 這意味這弱引用它并不對對象的內存進行管理.
  weak_ptr 在功能上類似于普通指針, 然而一個比較大的區別是, 弱引用能檢測到所管理的對象是否已經被釋放, 從而避免訪問非法內存。
注意: 雖然通過弱引用指針可以有效的解除循環引用, 但這種方式必須在程序員能預見會出現循環引用的情況下才能使用, 也可以是說這個僅僅是一種編譯期的解決方案, 如果程序在運行過程中出現了循環引用, 還是會造成內存泄漏.

class CB; class CA;class CA { public:CA() {}~CA() { PRINT_FUN(); }void Register(const std::shared_ptr<CB>& sp){m_spb = sp;}private:std::weak_ptr<CB> m_spb; };class CB { public:CB() {};~CB() { PRINT_FUN(); };void Register(const std::shared_ptr<CA>& sp){m_spa = sp;}private:std::shared_ptr<CA> m_spa; };std::shared_ptr<CA> spa(new CA); std::shared_ptr<CB> spb(new CB);spb->Register(spa); spa->Register(spb); printf("%d\n", spb.use_count()); // 1 printf("%d\n", spa.use_count()); // 2

?

另一個循環依賴的例子,來自<C++標準庫(第2版)>

class Person : public enable_shared_from_this<Person> { public:Person(const string& name): m_name{ name }{}~Person(){cout << "release " << m_name << endl;}string getName() const{return m_name;}void setFather(shared_ptr<Person> f){m_father = f;if (f){f->m_kids.push_back(shared_from_this());}}void setMother(shared_ptr<Person> m){m_mother = m;if (m){m->m_kids.push_back(shared_from_this());}}shared_ptr<Person> getKid(size_t idx){if (idx < m_kids.size()){weak_ptr<Person> p = m_kids.at(idx);if (!p.expired()){return p.lock();}}return nullptr;}private:string m_name;shared_ptr<Person> m_father;shared_ptr<Person> m_mother;//vector<shared_ptr<Person>> m_kids; // 循環依賴vector<weak_ptr<Person>> m_kids; };// 測試代碼 shared_ptr<Person> jack{ make_shared<Person>("Jack") }; shared_ptr<Person> lucy{ make_shared<Person>("Lucy") }; shared_ptr<Person> john{ make_shared<Person>("John") }; john->setFather(jack); john->setMother(lucy);auto p = jack->getKid(0); if (p) {cout << p->getName() << endl; }

?

附源碼實現:

template<class _Ty> class weak_ptr: public _Ptr_base<_Ty> { // class for pointer to reference counted resourcetypedef typename _Ptr_base<_Ty>::_Elem _Elem;public:weak_ptr(){ // construct empty weak_ptr object}template<class _Ty2>weak_ptr(const shared_ptr<_Ty2>& _Other,typename enable_if<is_convertible<_Ty2 *, _Ty *>::value,void *>::type * = 0){ // construct weak_ptr object for resource owned by _Otherthis->_Resetw(_Other);}weak_ptr(const weak_ptr& _Other){ // construct weak_ptr object for resource pointed to by _Otherthis->_Resetw(_Other);}template<class _Ty2>weak_ptr(const weak_ptr<_Ty2>& _Other,typename enable_if<is_convertible<_Ty2 *, _Ty *>::value,void *>::type * = 0){ // construct weak_ptr object for resource pointed to by _Otherthis->_Resetw(_Other);}~weak_ptr(){ // release resourcethis->_Decwref();}weak_ptr& operator=(const weak_ptr& _Right){ // assign from _Rightthis->_Resetw(_Right);return (*this);}template<class _Ty2>weak_ptr& operator=(const weak_ptr<_Ty2>& _Right){ // assign from _Rightthis->_Resetw(_Right);return (*this);}template<class _Ty2>weak_ptr& operator=(shared_ptr<_Ty2>& _Right){ // assign from _Rightthis->_Resetw(_Right);return (*this);}void reset(){ // release resource, convert to null weak_ptr objectthis->_Resetw();}void swap(weak_ptr& _Other){ // swap pointersthis->_Swap(_Other);}bool expired() const{ // return true if resource no longer existsreturn (this->_Expired());}shared_ptr<_Ty> lock() const{ // convert to shared_ptrreturn (shared_ptr<_Elem>(*this, false));} };

?

?

6. 如何選擇智能指針?

在掌握了這幾種智能指針后,大家可能會想另一個問題:在實際應用中,應使用哪種智能指針呢?
下面給出幾個使用指南。

(1)如果程序要使用多個指向同一個對象的指針,應選擇shared_ptr。這樣的情況包括:

  • 有一個指針數組,并使用一些輔助指針來標示特定的元素,如最大的元素和最小的元素;
  • 兩個對象包含都指向第三個對象的指針;
  • STL容器包含指針。很多STL算法都支持復制和賦值操作,這些操作可用于shared_ptr,但不能用于unique_ptr(編譯器發出warning)和auto_ptr(行為不確定)。如果你的編譯器沒有提供shared_ptr,可使用Boost庫提供的shared_ptr。

(2)如果程序不需要多個指向同一個對象的指針,則可使用unique_ptr。如果函數使用new分配內存,并返還指向該內存的指針,將其返回類型聲明為unique_ptr是不錯的選擇。這樣,所有權轉讓給接受返回值的unique_ptr,而該智能指針將負責調用delete。可將unique_ptr存儲到STL容器在那個,只要不調用將一個unique_ptr復制或賦給另一個算法(如sort())。例如,可在程序中使用類似于下面的代碼段。

unique_ptr<int> make_int(int n) {return unique_ptr<int>(new int(n)); } void show(unique_ptr<int> &p1) {cout << *a << ' '; } int main() {//...vector<unique_ptr<int> > vp(size);for (int i = 0; i < vp.size(); i++)vp[i] = make_int(rand() % 1000); // copy temporary unique_ptrvp.push_back(make_int(rand() % 1000)); // ok because arg is temporaryfor_each(vp.begin(), vp.end(), show); // use for_each()//... }

?

其中push_back調用沒有問題,因為它返回一個臨時unique_ptr,該unique_ptr被賦給vp中的一個unique_ptr。另外,如果按值而不是按引用給show()傳遞對象,for_each()將非法,因為這將導致使用一個來自vp的非臨時unique_ptr初始化pi,而這是不允許的。前面說過,編譯器將發現錯誤使用unique_ptr的企圖。

在unique_ptr為右值時,可將其賦給shared_ptr,這與將一個unique_ptr賦給一個需要滿足的條件相同。與前面一樣,在下面的代碼中,make_int()的返回類型為unique_ptr<int>:

unique_ptr<int> pup(make_int(rand() % 1000)); // ok shared_ptr<int> spp(pup); // not allowed, pup as lvalue shared_ptr<int> spr(make_int(rand() % 1000)); // ok

模板shared_ptr包含一個顯式構造函數,可用于將右值unique_ptr轉換為shared_ptr。shared_ptr將接管原來歸unique_ptr所有的對象。

在滿足unique_ptr要求的條件時,也可使用auto_ptr,但unique_ptr是更好的選擇。如果你的編譯器沒有unique_ptr,可考慮使用Boost庫提供的scoped_ptr,它與unique_ptr類似。

?

總結

以上是生活随笔為你收集整理的C++的4种智能指针剖析使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产黄色理论片 | 日韩av不卡在线播放 | 久久精品香蕉视频 | 成人午夜影院 | 成人影片在线免费观看 | 日本久久久亚洲精品 | 在线色资源 | 91精品专区 | 91精品国产九九九久久久亚洲 | 午夜在线免费观看视频 | 国产成人精品一区二三区 | 国产高清视频免费观看 | 在线视频 区 | 在线观看国产日韩 | 午夜精品久久久久久久久久久 | 成人影片在线免费观看 | 国产亚洲综合在线 | 欧美性脚交 | 日日日操| 国产精品久免费的黄网站 | 人人爽人人爽人人爽学生一级 | 国产91欧美| 日本久久精品视频 | 久久久久久久久久久影视 | 麻豆小视频在线观看 | 在线中文字幕播放 | 久热免费 | 久久香蕉一区 | 国产主播大尺度精品福利免费 | 亚州av网站| 成年人黄色免费网站 | а天堂中文最新一区二区三区 | 亚洲一区二区视频在线播放 | 99久久日韩精品视频免费在线观看 | 久草精品视频 | 久草久草在线观看 | 久久爱影视i | 久久久国产精品成人免费 | 狠狠干天天色 | 在线免费观看成人 | 色五丁香 | 午夜美女av| 精品在线播放视频 | 日韩91av | 午夜91在线 | 中文字幕一区二区在线观看 | 日韩,中文字幕 | 国产一区二区免费看 | av亚洲产国偷v产偷v自拍小说 | 久久综合婷婷综合 | 亚洲精品国偷自产在线91正片 | 91福利在线观看 | 国产日产精品一区二区三区四区 | 久草a在线 | 深爱婷婷| 色美女在线 | 一区二区三区 中文字幕 | 99久久夜色精品国产亚洲96 | 国产精品露脸在线 | 久久午夜影院 | 国产成人av在线 | 国产亚洲成人精品 | 色偷偷888欧美精品久久久 | 国产精品孕妇 | 色婷婷激情四射 | 天天色官网 | 一级黄色毛片 | 国产精品久99| 国产在线观看h | 日韩狠狠操 | 999久久国精品免费观看网站 | 国产999视频 | 日韩在线视频国产 | 成人免费视频a | 国产高清在线观看 | 精品亚洲网 | 欧美日韩伦理在线 | av黄色大片 | 久久99国产精品免费网站 | 国产一级电影网 | 国产小视频精品 | 亚洲欧美日韩一区二区三区在线观看 | 欧美成人精品欧美一级乱 | 五月激情婷婷丁香 | 久久免费在线观看视频 | 欧美黄污视频 | .国产精品成人自产拍在线观看6 | 欧美日韩精品影院 | 草久中文字幕 | 国产亚洲精品电影 | 亚洲在线视频观看 | 日韩av男人的天堂 | 免费在线观看不卡av | 中文字幕第一页在线视频 | 亚洲综合在线五月天 | 国产又粗又猛又黄又爽的视频 | 国产精品一区二区av | 欧美亚洲xxx | 深爱五月激情五月 | 精品国产精品一区二区夜夜嗨 | 精品黄色在线 | 国产在线中文字幕 | 99精品系列 | 国产高清视频在线免费观看 | 国产精品久久久久久一区二区三区 | 午夜免费视频网站 | 日韩精品偷拍 | 婷婷在线看| 日狠狠 | 超碰官网 | 国产精品黄网站在线观看 | 欧美了一区在线观看 | 亚洲欧美国产精品久久久久 | 国产精品美女免费视频 | 国产精品乱码高清在线看 | 亚洲国产精品成人av | 久久天天综合网 | 欧美婷婷色 | 欧美国产精品一区二区 | 亚洲日韩欧美一区二区在线 | 国产精彩视频一区二区 | 91最新中文字幕 | 91麻豆传媒 | 色婷婷亚洲婷婷 | 一级一片免费观看 | 麻豆视频在线免费看 | 精产嫩模国品一二三区 | 亚洲人人av | 久艹视频在线观看 | 久久一区二区三区日韩 | 午夜精品电影 | 毛片a级片| 91在线视频播放 | 国产午夜精品理论片在线 | 精品自拍网 | 91av电影| 在线观看一区视频 | 免费黄色网址网站 | 午夜天天操 | 天天干天天干天天色 | 成人黄色电影视频 | 久久精品免费观看 | 综合久久久久久久久 | 久久电影国产免费久久电影 | 久久精品日产第一区二区三区乱码 | 国产成人一区二区三区久久精品 | 久久午夜精品视频 | 国产精品网站 | 中文视频一区二区 | 97视频免费观看 | 国产亚洲日本 | 日韩免费一区二区在线观看 | 亚洲另类xxxx | 国产91精品看黄网站在线观看动漫 | 欧美极品在线播放 | 天天插综合网 | 成人一级电影在线观看 | 中文字幕视频网站 | 黄色成人免费电影 | 久久久人人爽 | 免费在线黄 | 麻豆久久| 欧美一区二区伦理片 | 超碰国产在线播放 | 国产精品久久久久久久久久三级 | 亚洲精品成人 | 97超碰人人看 | 国产精品99久久久精品 | 狠狠干夜夜爱 | 久热免费 | 国产不卡视频在线 | 中文字幕在线看视频国产中文版 | 成人av免费 | 久久综合给合久久狠狠色 | 日p在线观看 | 成人午夜在线电影 | 激情 一区二区 | 国产一线天在线观看 | 国产精品大片在线观看 | 日日夜夜精品视频天天综合网 | 免费看一级 | 亚洲一区在线看 | 久久这里只有精品首页 | 狠狠躁天天躁综合网 | 日本色小说视频 | 91手机视频在线 | а天堂中文最新一区二区三区 | av综合站| 亚洲日本欧美 | 国产成人精品国内自产拍免费看 | 亚洲人成在线电影 | 日本最新一区二区三区 | 日韩免费av片 | 国产3p视频 | bayu135国产精品视频 | 欧美午夜一区二区福利视频 | 国产丝袜高跟 | av中文字幕av | 日本h视频在线观看 | 91精品免费视频 | 日韩一区二区三区视频在线 | 婷婷亚洲五月色综合 | 国产在线超碰 | 日日夜夜天天综合 | 91刺激视频| 免费看污网站 | 开心综合网 | av高清网站在线观看 | 色婷婷狠狠操 | 在线观看中文字幕亚洲 | 97超视频免费观看 | 日韩免费小视频 | 亚洲综合涩| 丁香六月久久综合狠狠色 | 国产午夜av| 免费av一级电影 | 国产成人1区 | 久久久黄视频 | 青青河边草观看完整版高清 | 国产精品久久久毛片 | 国产精品免费视频一区二区 | 黄色在线网站噜噜噜 | 亚洲爱爱视频 | 区一区二区三区中文字幕 | 日韩激情久久 | 超碰在线人 | 日日操夜夜操狠狠操 | 插久久| 91av视频导航 | 精品国产一区二区三区四区在线观看 | 69xx视频| 伊人影院在线观看 | 亚洲国产免费网站 | 97色资源 | 亚洲国产剧情av | 日韩女同一区二区三区在线观看 | 天天操 夜夜操 | 久久国产精品久久精品 | 美女视频黄在线 | 美女性爽视频国产免费app | 精品国产乱子伦一区二区 | 91九色蝌蚪视频 | 91精品网站在线观看 | 欧美日韩免费一区二区 | 亚洲视频 视频在线 | 免费看一及片 | 男女日麻批| 蜜桃视频精品 | 久久99爱视频| 在线视频一二三 | 久久超碰99 | 久久高清 | 高清免费在线视频 | 精品视频免费 | 最新中文在线视频 | 国产精品五月天 | 国产 中文 日韩 欧美 | 久久久国产一区二区三区四区小说 | 91色影院| 日韩毛片精品 | 亚洲激情久久 | 天天爱天天射 | 国产精品免费不 | 中文字幕 二区 | 免费国产在线精品 | 欧洲一区精品 | 久久久婷 | 欧美二区在线播放 | 91在线看 | 久久视频免费在线观看 | 成人国产精品久久久 | 欧美91视频| 天天射网站 | 91成人精品视频 | 欧美日韩精品国产 | 探花视频免费在线观看 | 国外调教视频网站 | 国产91精品在线播放 | 亚洲精品欧洲精品 | 国产精品国产三级国产 | 日韩电影在线观看一区二区三区 | 亚洲欧美激情精品一区二区 | 免费在线观看成人 | 不卡的av在线播放 | 99情趣网视频 | 中中文字幕av在线 | 国产精品免费观看网站 | 天天综合网久久综合网 | 国产精品黄色影片导航在线观看 | 久久美女精品 | 欧美一级电影在线观看 | 久久久久亚洲精品中文字幕 | 99久久久久久久 | 二区三区视频 | 奇米影视8888在线观看大全免费 | 久久久久免费视频 | 中文字幕丝袜制服 | 精品亚洲免费 | 国产一区在线观看免费 | 国产精品欧美在线 | 丁香在线观看完整电影视频 | 丁香六月婷 | 伊人伊成久久人综合网站 | 日韩欧美区 | 免费观看性生交 | 日韩在线免费视频观看 | 亚洲精品男人天堂 | 日韩电影中文字幕在线观看 | 五月天国产精品 | 国产精品久久亚洲 | 东方av免费在线观看 | 国产经典av | 午夜精品一区二区三区在线观看 | 91精品视频在线免费观看 | 中文字幕三区 | 久久综合狠狠 | 国产精品久久久久久久久久新婚 | 国产无遮挡猛进猛出免费软件 | 97人人模人人爽人人喊中文字 | 国产一区二区在线播放 | 日韩免费大片 | 国产美女精品视频 | 国产一级不卡毛片 | 精精国产xxxx视频在线播放 | 69精品久久久 | 少妇bbw搡bbbb搡bbbb | 狠狠躁日日躁狂躁夜夜躁av | 激情久久一区二区三区 | a午夜在线 | 美女视频免费一区二区 | 中文在线字幕免 | 久久爱导航 | 国产美女视频 | 精品国产精品久久一区免费式 | 国产一区二区在线免费视频 | www.看片网站 | 色中文字幕在线观看 | 97激情影院| 欧美日韩在线视频一区 | 久久精品久久精品久久39 | 天天干天天看 | 四虎视频 | 国产精品久久久久久久久免费 | 亚洲 中文字幕av | 色网站中文字幕 | 91污视频在线 | 国产黄色成人 | 国产亚洲视频在线免费观看 | 国产精品精品久久久久久 | 日韩伦理一区二区三区av在线 | 国产精品麻豆免费版 | 一区二区三区av在线 | 亚洲欧美综合精品久久成人 | 国产剧情在线一区 | 中文字幕丝袜美腿 | 日韩视频中文字幕在线观看 | 五月丁香 | 天天综合视频在线观看 | 亚洲精品国产电影 | 在线观看视频国产一区 | 成年免费在线视频 | 黄色片免费在线 | 免费av大全 | 九九久久电影 | 国产亚洲精品久久久久久移动网络 | 日韩欧美高清视频在线观看 | 欧美日韩aa| 黄色三级免费网址 | 亚洲国产黄色片 | 国产精品麻豆欧美日韩ww | 国产成人精品av在线 | 在线99| 中文有码在线视频 | 中文字幕123区 | 亚洲 欧美 成人 | 波多野结衣在线观看一区二区三区 | 免费特级黄色片 | 久操视频在线免费看 | 亚洲一区不卡视频 | 久久综合九色欧美综合狠狠 | 欧美激情视频一区二区三区免费 | 久久精品8| 精品国产乱码久久 | 懂色av一区二区三区蜜臀 | 天天干,天天插 | 一级做a爱片性色毛片www | 91伊人久久大香线蕉蜜芽人口 | 日韩中文字幕亚洲一区二区va在线 | 亚洲精品一区二区精华 | 国产精品九九久久久久久久 | 午夜视频在线观看一区二区 | 97色在线观看免费视频 | 亚洲久草在线 | 成年人视频免费在线 | 免费人人干 | 日本黄色免费在线观看 | 亚洲精品99久久久久中文字幕 | 亚洲综合色站 | 国产精品美女久久久免费 | 久久夜av | 日韩欧美一级二级 | 在线一二三四区 | 四虎国产永久在线精品 | 91手机在线看片 | 日韩有码中文字幕在线 | 99久久精品免费视频 | 精品国产一区二区三区久久影院 | 国产精品毛片一区二区在线看 | 玖玖精品视频 | 天堂av在线 | 人人玩人人添人人澡97 | 亚洲成人精品 | 久久久亚洲成人 | 久久久久久久久久久久av | 精品美女久久 | 欧美黑吊大战白妞欧美 | 99久久久国产精品免费99 | 成人a级网站 | 日韩欧美高清在线 | 久久久精品免费看 | 日日爽夜夜操 | 99电影456麻豆 | 国产在线一区二区 | 久久精品国产v日韩v亚洲 | 夜添久久精品亚洲国产精品 | 狠狠色伊人亚洲综合网站色 | 综合天天色| 国产青青青 | 黄网站免费大全入口 | 日韩av手机在线看 | 一区二区电影网 | 久久午夜电影 | 中文字幕日韩高清 | 国产在线看 | av大全在线| 久久久亚洲国产精品麻豆综合天堂 | 久久专区| 国产精品国产三级国产aⅴ无密码 | 中文字幕久久久精品 | 久久国产91| 日韩欧美在线视频一区二区三区 | 在线观看的av网站 | 久久久久激情电影 | 日韩精品免费在线视频 | 国产91精品在线播放 | 午夜精品一区二区三区在线播放 | 最近最新mv字幕免费观看 | 亚洲精品视频在线观看网站 | 中国黄色一级大片 | 国内偷拍精品视频 | 免费国产视频 | 久久久免费观看完整版 | 天天综合日 | 日韩精品无码一区二区三区 | 日韩免费视频 | 国模一二三区 | 久久99精品久久久久婷婷 | 亚洲精品国产成人 | a级国产毛片| 亚洲欧美视频网站 | 中文字幕在线看视频国产 | 国产字幕在线看 | 天天干天天干天天干天天干天天干天天干 | 国产精品情侣视频 | 91久久国产精品 | 91av免费看| 日本三级大片 | 黄色片免费电影 | 国产999精品久久久久久麻豆 | 狠狠黄 | 天天操天天能 | 久久成人午夜视频 | 91传媒视频在线观看 | 欧美视频国产视频 | 天天干人人 | 亚洲精品美女久久久久 | 日韩精品视频在线观看免费 | 久久激情电影 | 在线免费看黄网站 | 中文字幕永久免费 | 成人在线一区二区三区 | 日韩精品免费在线观看视频 | a爱爱视频| 99爱精品视频 | 天天爽天天爽天天爽 | 五月花婷婷 | 日本三级吹潮在线 | 丁香婷婷亚洲 | 四虎影视成人永久免费观看视频 | 久久网址 | 欧美成人黄色 | 国产黄色片久久久 | 激情久久综合网 | 国产中文字幕91 | 亚洲国产精品激情在线观看 | 国产一区二区久久久久 | 亚洲手机天堂 | 成人午夜影院在线观看 | 日韩激情久久 | 久久伦理影院 | 色资源网在线观看 | 97国产情侣爱久久免费观看 | 久草在线视频免费资源观看 | 美女视频黄,久久 | 极品久久久久 | 国产99久久九九精品 | 天天想夜夜操 | 国产成人久久精品亚洲 | av线上看 | 欧美久久久久久久久中文字幕 | 最近更新的中文字幕 | 国产精品欧美久久久久三级 | 久久综合激情 | 国产露脸91国语对白 | 手机av在线不卡 | 99视频在线精品国自产拍免费观看 | 黄a网| 国产精品 亚洲精品 | 国产精品久久久久久久99 | av在线免费播放 | 久久综合射 | 色综合亚洲精品激情狠狠 | 日韩欧美在线视频一区二区 | 97色在线观看免费视频 | 久久国产精品久久精品 | 亚洲精品在线看 | 国产专区日韩专区 | 99视频这里有精品 | 亚洲精品国产精品乱码在线观看 | 日本高清免费中文字幕 | 久草精品网 | 欧美视频二区 | 黄色大全免费网站 | 亚洲精品在线观看视频 | 中文日韩在线视频 | 黄色毛片视频免费 | 成人va天堂 | 日韩欧美精品在线观看视频 | a黄色影院 | 久久精品久久久久 | 国内视频| 西西44人体做爰大胆视频 | 久久国产一区二区三区 | 精品视频免费在线 | 在线观看日韩中文字幕 | 成人av中文字幕在线观看 | 国产精品手机视频 | 99 色| 国产精品永久免费视频 | 国产高清精 | 97国产精品亚洲精品 | 久久久久麻豆v国产 | 亚洲激情网站免费观看 | 亚洲高清国产视频 | 欧美天天干 | 国产成人专区 | 亚洲一区二区三区在线看 | 亚洲欧美日韩一区二区三区在线观看 | 中文字幕一区二区三区在线播放 | 天天干天天色2020 | 人人看看人人 | 色综合久久66 | 干干日日| 久久免费视频5 | 色国产精品一区在线观看 | 综合色狠狠 | 中文字幕在线观看视频一区二区三区 | 成人在线观看免费视频 | 99久久婷婷 | 国产精品白虎 | 国产免费一区二区三区网站免费 | 日韩va在线观看 | 天天色天天上天天操 | 天天操比 | 久久精品1区2区 | 欧美一级日韩三级 | 中文字幕精品一区二区精品 | 久久美女高清视频 | 激情狠狠干 | 激情久久伊人 | 成人午夜电影久久影院 | 韩国av一区二区三区在线观看 | 欧美日韩99 | 国产第页| 最新91在线视频 | 人人爽人人爱 | av在线免费不卡 | 久久视频在线观看中文字幕 | 亚洲精品乱码久久久久久9色 | 国产精品乱码久久久久 | 色 中文字幕 | 久久久久亚洲精品国产 | 国产一区二区免费在线观看 | 草莓视频在线观看免费观看 | 99久久婷婷 | 亚洲欧美视频在线观看 | 久久免费公开视频 | 深夜免费网站 | 高清美女视频 | 国产亚洲精品久久久久久电影 | 精产嫩模国品一二三区 | 中文字幕在线免费97 | 在线中文视频 | 精品av在线播放 | 午夜久久久久久久久久影院 | 香蕉影院在线 | 久久www免费视频 | 成人av一二三区 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 中文字幕中文字幕中文字幕 | 久久综合导航 | 91久久国产露脸精品国产闺蜜 | 91香蕉视频色版 | 久久免费视频网 | 欧美一区二区三区在线观看 | 九九99 | 9999在线 | 国产色拍拍拍拍在线精品 | 国产色影院 | 天天爽天天爽天天爽 | 成人a级网站 | 亚洲天天在线 | 91在线播 | 热久精品| 日韩中文久久 | 九九九视频精品 | 手机在线看片日韩 | 久久久久人人 | 国产一区91| 91精品视频一区 | 午夜av大片 | 亚洲精品高清一区二区三区四区 | 二区视频在线观看 | 一本一道波多野毛片中文在线 | 在线91色| 一区二区三区四区五区在线视频 | 91传媒免费观看 | av九九九 | 在线观看视频黄色 | 91精品在线观看入口 | 在线日韩视频 | 西西444www大胆无视频 | 亚洲精品视频一 | 成人av影视观看 | 久久中文字幕导航 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 日韩av电影中文字幕在线观看 | 麻豆成人在线观看 | 久久有精品 | 日日夜夜天天综合 | av中文资源在线 | 亚洲黄色网络 | 久久你懂的 | 免费男女羞羞的视频网站中文字幕 | 三级在线国产 | 亚洲国产中文字幕在线 | 一本一道久久a久久综合蜜桃 | 亚洲播放一区 | 99麻豆视频 | 亚洲国产成人精品电影在线观看 | 日本性动态图 | 九九精品视频在线 | 久久久国产精品人人片99精片欧美一 | 国模精品一区二区三区 | 91成人在线免费观看 | 久久精品波多野结衣 | 国产成人精品一区二区三区在线 | 久久亚洲国产精品 | 久热色超碰 | 欧美在线视频一区二区三区 | 久久99久久精品国产 | 欧美激情精品久久久 | 日本一区二区三区视频在线播放 | 91麻豆精品一区二区三区 | 免费av一级电影 | 国产在线观看h | 久久久高清免费视频 | 久久免费播放视频 | 99久久影院| 国产精品不卡在线观看 | 国产资源在线观看 | 色国产在线| 亚洲国产网站 | 免费看一级片 | 天天摸夜夜添 | 国产精品视频免费在线观看 | 天天狠狠干 | 日韩欧美在线中文字幕 | 四虎永久免费网站 | 欧美日韩二区三区 | 国产日本在线观看 | 久久午夜网 | 国产精品免费在线播放 | 在线高清 | 精品成人免费 | 欧美日韩裸体免费视频 | 摸bbb搡bbb搡bbbb | 五月天婷亚洲天综合网鲁鲁鲁 | 国产精品日韩欧美 | 一级性生活片 | 久久网站免费 | 国产精品免费在线播放 | 久草电影在线观看 | 中文字幕资源在线观看 | 国产黄色片一级三级 | 精品国产乱码一区二区三区在线 | 国产高清日韩 | 9i看片成人免费看片 | 亚洲成人av电影在线 | 在线播放第一页 | 最近中文字幕在线中文高清版 | 成人av午夜 | 亚洲一区二区精品 | 亚洲精品午夜国产va久久成人 | 亚洲va欧美va人人爽春色影视 | 久久久色 | 毛片视频网址 | 国产资源免费 | 日韩高清一 | 免费看片网页 | 91av电影网 | 国产在线成人 | 一区二区三区免费网站 | 欧洲精品久久久久毛片完整版 | 999在线精品 | 国产高清不卡在线 | 国产精品毛片久久久久久 | 国产在线观看网站 | 久久国产精品视频免费看 | av电影一区| 欧美人牲| 亚洲精品国产精品久久99热 | 亚洲精品资源在线 | 国产最新视频在线观看 | av网站大全免费 | 国产中文在线播放 | 国产乱码精品一区二区三区介绍 | www.夜夜操.com | 一区二区激情 | 国产资源网 | 成人a视频 | 久久一区精品 | 日日干夜夜草 | 深夜免费小视频 | 91人人射 | 久草热久草视频 | 久久精品三 | 91亚洲综合| 欧美久久久久久久久久久久 | 毛片精品免费在线观看 | 91网站免费观看 | 国产在线第三页 | 黄色app网站在线观看 | 毛片网站免费在线观看 | 日韩午夜高清 | 就要色综合 | 九九视频在线 | av中文资源在线 | 五月激情丁香图片 | 精品一区二区av | 国产一级a毛片视频爆浆 | 成人一区二区三区中文字幕 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 久久激五月天综合精品 | 国产小视频免费在线网址 | 免费看特级毛片 | 久久精品精品电影网 | 国产精品一区在线观看你懂的 | 激情丁香久久 | 日韩理论电影在线 | 国产欧美最新羞羞视频在线观看 | 国产一级片免费视频 | 久久精品国产第一区二区三区 | 久久久国产精品久久久 | 亚洲精品玖玖玖av在线看 | 日韩av一卡二卡三卡 | 国产又粗又猛又色又黄视频 | 免费日韩 精品中文字幕视频在线 | 亚洲涩涩一区 | 国产91大片| 色视频 在线 | 黄色亚洲免费 | 日韩网站在线看片你懂的 | 国产一区欧美二区 | 日韩av区 | 一二区电影 | 欧美a级成人淫片免费看 | 久草综合在线观看 | 久久免费在线观看 | 在线不卡中文字幕播放 | 日韩精品久久一区二区三区 | 久久免费久久 | 91香蕉视频在线下载 | 99久久激情视频 | 国产精品一区二区三区在线免费观看 | 九九久| 波多野结衣视频网址 | 国产最新福利 | 免费一级黄色 | 久久久久久久久久久影院 | 日韩在线第一区 | 日韩欧美在线视频一区二区 | 久操视频在线免费看 | 国产91勾搭技师精品 | 成人午夜久久 | 超碰在线cao | av免费网页 | 国产中文字幕av | 国产高清 不卡 | 国产成人精品一区二区三区 | 99久久久久 | 欧美91精品 | 91精品国产92久久久久 | 日韩电影在线观看中文字幕 | 亚州国产精品久久久 | 中文字幕亚洲高清 | 亚洲午夜久久久久 | 91在线免费公开视频 | 中文字幕在线看人 | 狠狠狠狠干 | 久久爱992xxoo| 国产视频欧美视频 | 欧美激情精品久久久久久免费 | 国产一区二区在线精品 | 激情文学综合丁香 | 国模视频一区二区 | 嫩草伊人久久精品少妇av | 亚洲精品乱码白浆高清久久久久久 | 日韩av一区二区三区四区 | 在线观看国产麻豆 | 日韩精品一区二区三区视频播放 | 丁香激情视频 | 久久资源在线 | 成人免费中文字幕 | 成人国产一区 | 91麻豆免费看 | 久久av影院| 精品1区二区 | 在线视频观看91 | 久久精品www人人爽人人 | 国产91粉嫩白浆在线观看 | 99精品在线免费观看 | 操操碰| 久久亚洲日本 | 久久久亚洲网站 | 亚洲天堂在线观看完整版 | 91免费高清观看 | 欧美精品一区二区在线播放 | 亚洲 中文 在线 精品 | 色综合久久久久综合体 | 日本护士三级少妇三级999 | 日韩在线观看视频免费 | 人人狠狠 | 特级免费毛片 | 日本3级在线观看 | 丁香六月婷婷开心婷婷网 | 国精产品999国精产品岳 | 91免费版成人 | www.天天综合 | 97精产国品一二三产区在线 | 国产视频在线看 | 成人观看视频 | 91在线一区二区 | 黄色大全免费网站 | 黄色软件视频网站 | 精品福利av | 中文av不卡| 久久综合欧美 | 免费www视频| 欧美成人一二区 | 日日天天狠狠 | 午夜91在线 | www蜜桃视频 | 欧美激情精品久久 | 97狠狠操| aaa日本高清在线播放免费观看 | 国产一区二区久久久 | 久久这里只有精品9 | 成年人免费观看国产 | 国产日女人| 国产一区免费在线观看 | 在线观看日韩一区 | 97香蕉超级碰碰久久免费软件 | 久久视频二区 | 国产123av| 欧美a免费 | 999久久久久久久久 69av视频在线观看 | 久免费视频 | 天天天色| 成人性生活大片 | 国产中出在线观看 | 久久九九久久精品 | 五月激情久久 | 欧美色道| 丁香六月激情 | 日本精品视频在线 | 亚洲伊人网在线观看 | 日精品| 91在线你懂的 | 国产精品一区二区av日韩在线 | 麻豆免费观看视频 | 国产黄影院色大全免费 | 在线观看的av网站 | 日韩av网页| 久久午夜鲁丝片 | 在线观看av网 | 国产成人精品综合久久久 | 欧美一级片 | 美女视频网 | 婷婷综合影院 | 国产精品永久免费视频 | 日本久久久影视 | 久久久999精品视频 国产美女免费观看 | 日韩av电影中文字幕在线观看 | 中文在线字幕免 | 午夜精品视频一区二区三区在线看 | 久草视频中文 | 在线免费成人 | 91影视成人 | 久久精品老司机 | 国产黑丝一区二区 | 国产视频一 | 亚洲国产精久久久久久久 | 黄色软件在线看 | 天天射天天爱天天干 | 狠狠久久婷婷 | 黄a在线 | 日韩色中色| 欧美日韩中文视频 | 国产精品久久久久久久久久久免费 | www久| 国产色婷婷在线 | 91大神精品视频 | 黄视频色网站 | 色的网站在线观看 | 久久九九久久 | 免费黄色a级毛片 | 欧美日韩一区二区在线 | 国产一级免费在线 | 国产精品国产亚洲精品看不卡 | 日韩大陆欧美高清视频区 | 国产香蕉97碰碰碰视频在线观看 | 91黄色小网站 | 亚洲jizzjizz日本少妇 | 国产精品中文 | 亚洲欧洲一区二区在线观看 | 国产精品免费av | 91看片在线观看 | 日本黄色一级电影 | 天天干天天搞天天射 | 少妇视频一区 | 欧美亚洲国产日韩 | 中文字幕在线国产精品 | 久久手机免费观看 | 最新国产在线视频 | 99在线热播 | 免费在线播放黄色 | 国产高清中文字幕 | 欧美中文字幕久久 | 片网站 | 亚洲成人高清在线 | 九九九九热精品免费视频点播观看 | 亚洲伊人色 | 久久99电影 | 中文超碰字幕 | 久久午夜色播影院免费高清 | 韩国精品福利一区二区三区 | 国产h片在线观看 | 最新av网站在线观看 | 久久一二三四 | 久久精品1区 | 亚洲视频分类 | 美女黄频 | 成人国产精品免费观看 | 丁香婷五月 | 亚洲v精品 | 日韩高清不卡一区二区三区 | 狠狠干夜夜 | 亚洲伊人av | 亚洲精品永久免费视频 | 一区二区三区www | japanesefreesexvideo高潮 | 久草视频免费观 | 久久久免费看视频 | 在线观看日韩精品视频 | 在线免费黄色 | 国产精品成人免费一区久久羞羞 | 黄网站免费久久 | 岛国精品一区二区 | 国产精品不卡在线观看 | 久久伊人爱 | 国产精品麻豆99久久久久久 | 深爱激情站 | 国产精品va| 久久69精品久久久久久久电影好 | 国产一区福利在线 | 日韩黄色免费在线观看 | 国产999精品久久久久久麻豆 |