一卡二卡欧美日韩_国产精品久久久久久久久影视_四虎永久在线精品无码视频_亚洲小说欧美另类激情_国产污视频在线观看_日韩欧美高清在线视频_91精品国产91久久久久麻豆 主演_阿v天堂2014_99热这里精品_91麻豆精品国产91久久久_国产欧美丝袜_538精品在线视频

首頁 資訊 > 創新 > 正文

Qt淺談之一:內存泄露

Qt內存管理機制:Qt 在內部能夠維護對象的層次結構。對于可視元素,這種層次結構就是子組件與父組件的關系;對于非可視元素,則是一個對象與另一個對象的從屬關系。在 Qt 中,在 Qt 中,刪除父對象會將其子對象一起刪除。

C++中delete 和 new 必須配對使用(一 一對應):delete少了,則內存泄露,多了麻煩更大。Qt中使用了new卻很少delete,因為QObject的類及其繼承的類,設置了parent(也可在構造時使用setParent函數或parent的addChild)故parent被delete時,這個parent的相關所有child都會自動delete,不用用戶手動處理。但parent是不區分它的child是new出來的還是在棧上分配的。這體現delete的強大,可以釋放掉任何的對象,而delete棧上對象就會導致內存出錯,這需要了解Qt的半自動的內存管理。另一個問題:child不知道它自己是否被delete掉了,故可能會出現野指針。那就要了解Qt的智能指針QPointer。


(相關資料圖)

二、關聯圖

(1)Linux內存圖,主要了解堆棧上分配內存的不同方式。

(2)在Qt中,最基礎和核心的類是:QObject,QObject內部有一個list,會保存children,還有一個指針保存parent,當自己析構時,會自己從parent列表中刪除并且析構所有的children。

三、詳解

1、Qt的半自動化的內存管理

(1)QObject及其派生類的對象,如果其parent非0,那么其parent析構時會析構該對象。

(2)QWidget及其派生類的對象,可以設置 Qt::WA_DeleteOnClose 標志位(當close時會析構該對象)。

(3)QAbstractAnimation派生類的對象,可以設置 QAbstractAnimation::DeleteWhenStopped。

(4)QRunnable::setAutoDelete()、MediaSource::setAutoDelete()。

(5)父子關系:父對象、子對象、父子關系。這是Qt中所特有的,與類的繼承關系無關,傳遞參數是與parent有關(基類、派生類,或父類、子類,這是對于派生體系來說的,與parent無關)。

2、內存問題例子

例子一

#include #include int main(int argc, char *argv[]){QApplication a(argc, argv);QLabel *label = new QLabel("Hello Qt!");label->show();return ();}

分析:(1)label 既沒有指定parent,也沒有對其調用delete,所以會造成內存泄漏。書中的這種小例子也會出現指針內存的問題。

改進方式:(1)分配對象到棧上而不是堆上

#include #include int main(int argc, char *argv[]){QApplication a(argc, argv);QLabel label("Hello Qt!");();return ();}

(2)設置標志位,close()后會delete label。

label->setAttribute(Qt::WA_DeleteOnClose);

(3)new后手動delete

#include #include int main(int argc, char *argv[]){int ret = 0;QApplication a(argc, argv);QLabel *label = new QLabel("Hello Qt!");label->show();ret = ();delete label;return ret;}

例子二

#include #include int main(int argc, char *argv[]){QApplication app(argc, argv);QLabel label("Hello Qt!");();(Qt::WA_DeleteOnClose);return ();}

運行:

分析:程序崩潰,因為label被close時,delete &label;但label對象是在棧上分配的內存空間,delete棧上的地址會出錯。

有些朋友理解為label被delete兩次而錯誤,可以測試QLabel label("Hello Qt!"); ();delete &label;第一次delete就會出錯。

例子三

#include #include int main(int argc, char* argv[]){QApplication app(argc, argv);QLabel label("Hello Qt!");QWidget w;(&w);();return ();}

分析:Object內部有一個list,會保存children,還有一個指針保存parent,當自己析構時,會自己從parent列表中刪除并且析構所有的children。

w比label先被析構,當w被析構時,會刪除chilren列表中的對象label,但label是分配到棧上的,因delete棧上的對象而出錯。

【領 QT開發教程 學習資料, 點擊下方鏈接莬費領取↓↓ ,先碼住不迷路~】

點擊這里:

改進方式:(1)調整一下順序,確保label先于其parent被析構,label析構時將自己從父對象的列表中移除自己,w析構時,children列表中就不會有分配在stack中的對象了。

#include #include int main(int argc, char* argv[]){QApplication app(argc, argv);QWidget w;QLabel label("Hello Qt!");(&w);();return ();}

(2)將label分配到堆上

QLabel *label = new QLabel("Hello Qt!");label->setParent(&w)

或者QLabel *label = new QLabel("Hello Qt!",this);

例子四:野指針

#include #include int main(int argc, char* argv[]){QApplication app(argc, argv);QWidget *w = new QWidget;QLabel *label = new QLabel("Hello Qt!");label->setParent(w);w->show();delete w;label->setText("go"); //野指針return ();}

(上述程序不顯示Label,僅作測試)

分析:程序異常結束,delete w時會delete label,label成為野指針,調用label->setText("go");出錯。

改進方式:QPointer智能指針

#include #include #include int main(int argc, char* argv[]){QApplication app(argc, argv);QWidget *w = new QWidget;QLabel *label = new QLabel("Hello Qt!");label->setParent(w);QPointerp = label;w->show();delete w;if (!()) {label->setText("go");}return ();}

例子五:deleteLater

當一個QObject正在接受事件隊列時如果中途被你銷毀掉了,就是出現問題了,所以QT中建大家不要直接Delete掉一個QObject,如果一定要這樣做,要使用QObject的deleteLater()函數,它會讓所有事件都發送完一切處理好后馬上清除這片內存,而且就算調用多次的deletelater也不會有問題。

發送一個刪除事件到事件系統:

void QObject::deleteLater(){QCoreApplication::postEvent(this, new QEvent(QEvent::DeferredDelete));}

3、智能指針

如果沒有智能指針,程序員必須保證new對象能在正確的時機delete,四處編寫異常捕獲代碼以釋放資源,而智能指針則可以在退出作用域時(不管是正常流程離開或是因異常離開)總調用delete來析構在堆上動態分配的對象。

Qt家族的智能指針:

智能指針

引入

QPointer

Qt Object 模型的特性(之一)

注意:析構時不會delete它管理的資源

QSharedPointer

帶引用計數

QWeakPointer

QScopedPointer

QScopedArrayPointer

QScopedPointer的派生類

QSharedDataPointer

用來實現Qt的隱式共享(Implicit Sharing)

QExplicitlySharedDataPointer

顯式共享

std::auto_ptr

std::shared_ptr

std::tr1::shared_ptr

C++0x

std::weak_ptr

std::tr1::weak_ptr

C++0x

std::unique_ptr

boost::scoped_ptr

C++0x

(1)QPointer

QPointer是一個模板類。它很類似一個普通的指針,不同之處在于,QPointer 可以監視動態分配空間的對象,并且在對象被 delete 的時候及時更新。

QPointer的現實原理:在QPointer保存了一個QObject的指針,并把這個指針的指針(雙指針)交給全局變量管理,而QObject 在銷毀時(析構函數,QWidget是通過自己的析構函數的,而不是依賴QObject的)會調用QObjectPrivate::clearGuards 函數來把全局 GuardHash 的那個雙指針置為*零,因為是雙指針的問題,所以QPointer中指針當然也為零了。用isNull 判斷就為空了。

// QPointer 表現類似普通指針QDate *mydate = new QDate(QDate::currentDate());QPointer mypointer = mydata;mydate->year(); // ->2005mypointer->year(); // ->2005// 當對象 delete 之后,QPointer 會有不同的表現delete mydate;if(mydate == NULL)printf("clean pointer");elseprintf("dangling pointer");// 輸出 dangling pointerif(())printf("clean pointer");elseprintf("dangling pointer");// 輸出 clean pointer

(2)std::auto_ptr

// QPointer 表現類似普通指針QDate *mydate = new QDate(QDate::currentDate());QPointer mypointer = mydata;mydate->year(); // ->2005mypointer->year(); // ->2005// 當對象 delete 之后,QPointer 會有不同的表現delete mydate;if(mydate == NULL)printf("clean pointer");elseprintf("dangling pointer");// 輸出 dangling pointerif(())printf("clean pointer");elseprintf("dangling pointer");// 輸出 clean pointeauto_ptr被銷毀時會自動刪除它指向的對象。std::auto_ptrlabel(new QLabel("Hello Dbzhang800!"));

(3)其他的類參考相應文檔。

4、自動垃圾回收機制

(1)QObjectCleanupHandler

Qt 對象清理器是實現自動垃圾回收的很重要的一部分。QObjectCleanupHandler可以注冊很多子對象,并在自己刪除的時候自動刪除所有子對象。同時,它也可以識別出是否有子對象被刪 除,從而將其從它的子對象列表中刪除。這個類可以用于不在同一層次中的類的清理操作,例如,當按鈕按下時需要關閉很多窗口,由于窗口的 parent 屬性不可能設置為別的窗口的 button,此時使用這個類就會相當方便。

#include #include #include int main(int argc, char* argv[]){QApplication app(argc, argv);// 創建實例QObjectCleanupHandler *cleaner = new QObjectCleanupHandler;// 創建窗口QPushButton *w = new QPushButton("Remove Me");w->show();// 注冊第一個按鈕cleaner->add(w);// 如果第一個按鈕點擊之后,刪除自身QObject::connect(w, SIGNAL(clicked()), w, SLOT(deleteLater()));// 創建第二個按鈕,注意,這個按鈕沒有任何動作w = new QPushButton("Nothing");cleaner->add(w);w->show();// 創建第三個按鈕,刪除所有w = new QPushButton("Remove All");cleaner->add(w);QObject::connect(w, SIGNAL(clicked()), cleaner, SLOT(deleteLater()));w->show();return ();}

在上面的代碼中,創建了三個僅有一個按鈕的窗口。第一個按鈕點擊后,會刪除掉自己(通過 deleteLater() 槽),此時,cleaner 會自動將其從自己的列表中清除。第三個按鈕點擊后會刪除 cleaner,這樣做會同時刪除掉所有未關閉的窗口。

(2)引用計數

應用計數是最簡單的垃圾回收實現:每創建一個對象,計數器加 1,每刪除一個則減 1。

class CountedObject : public QObject{Q_OBJECTpublic:CountedObject(){ctr=0;}void attach(QObject *obj){ctr++;connect(obj, SIGNAL(destroyed(QObject*)), this, SLOT(detach()));}public slots:void detach(){ctr--;if(ctr <= 0)delete this;}private:int ctr;};

利用Qt的信號槽機制,在對象銷毀的時候自動減少計數器的值。但是,我們的實現并不能防止對象創建的時候調用了兩次attach()。

(3)記錄所有者

更合適的實現是,不僅僅記住有幾個對象持有引用,而且要記住是哪些對象。例如:

class CountedObject : public QObject{public:CountedObject() {}void attach(QObject *obj) {// 檢查所有者if(obj == 0)return;// 檢查是否已經添加過if((obj))return;// 注冊(obj);connect(obj, SIGNAL(destroyed(QObject*)), this, SLOT(detach(QObject*)));}public slots:void detach(QObject *obj) {// 刪除(obj);// 如果最后一個對象也被 delete,刪除自身if(() == 0)delete this;}private:QList owners;};

現在我們的實現已經可以做到防止一個對象多次調用 attach() 和 detach() 了。然而,還有一個問題是,我們不能保證對象一定會調用 attach() 函數進行注冊。畢竟,這不是 C++ 內置機制。有一個解決方案是,重定義 new 運算符(這一實現同樣很復雜,不過可以避免出現有對象不調用 attach() 注冊的情況)。

Qt 簡化了我們對內存的管理,但是,由于它會在不太注意的地方調用 delete,所以,使用時還是要當心。

【領 QT開發教程 學習資料, 點擊下方鏈接莬費領取↓↓ ,先碼住不迷路~】

點擊這里:

原文鏈接:/taiyang1987912/article/details/29271549

關鍵詞:

最近更新

關于本站 管理團隊 版權申明 網站地圖 聯系合作 招聘信息

Copyright © 2005-2023 創投網 - www.zmtongc.cn All rights reserved
聯系我們:39 60 29 14 2@qq.com
皖ICP備2022009963號-3

色综合天天狠天天透天天伊人| 中文字幕一区二区久久人妻| 久久久水蜜桃| 午夜精品在线视频| 亚洲精品美女在线观看| 欧美天堂在线观看| 中文字幕免费不卡在线| 久久亚洲美女| 国产欧美久久久精品免费| 成人免费视频网站入口::| 999这里有精品| 国产日韩欧美精品在线观看| dy888夜精品国产专区| 欧美精品videossex性护士| 日韩成人高清在线| 91精品国产综合久久精品麻豆| 亚洲精品v日韩精品| 91丨porny丨最新| 韩日精品视频一区| 日韩精彩视频在线观看| 丰满少妇高潮在线观看| 中文字幕av片| 成人小视频在线播放| 极品美妇后花庭翘臀娇吟小说| 亚洲图片综合网| 免费黄频在线观看| 性生交免费视频| 国产午夜福利视频在线观看| 可以看毛片的网址| 人人妻人人添人人爽欧美一区| 久久亚洲a v| 成人一区二区av| 国产精品国产三级国产专区51| 亚洲免费不卡| 看全色黄大色大片| 国产一二三在线视频| 欧美日韩午夜爽爽| 国产素人在线观看| 少妇高清精品毛片在线视频| 欧美三级午夜理伦三级| 91热这里只有精品| 人妻少妇偷人精品久久久任期| 97免费公开视频| 无码人妻一区二区三区免费n鬼沢| 俄罗斯女人裸体性做爰| 国产激情视频网站| 东方伊人免费在线观看| 黄色a级片在线观看| 日本少妇裸体做爰| 亚洲一级特黄毛片| 国产综合视频在线| 青椒成人免费视频| 国产伦精一区二区三区| 成人av在线一区二区三区| 91蜜桃网址入口| 亚洲色图制服诱惑| 亚洲va欧美va天堂v国产综合| 色一区在线观看| 欧美第一区第二区| 亚洲日本成人网| 性欧美在线看片a免费观看| 国产精品三级美女白浆呻吟| av一本久道久久波多野结衣| 亚洲一区二区三区精品视频| 国内外成人激情视频| 超碰人人cao| 国产女人18水真多毛片18精品| 国产精品成人久久| 免费观看国产视频| 26uuu欧美| 欧美性生活大片免费观看网址| 精品久久久久久久人人人人传媒| 久久国产精品久久国产精品| 国产精品一区久久| 日日夜夜精品网站| 激情五月开心婷婷| 一本加勒比北条麻妃| 亚洲高清毛片一区二区| 性插视频在线观看| 91在线观看视频| 五月婷婷久久丁香| 亚洲色图在线观看| 国产精品视频地址| 成人午夜免费剧场| jlzzjizz在线播放观看| 国产美女激情视频| 经典三级在线一区| 亚洲精品ww久久久久久p站| 欧美成人bangbros| 国产精品av在线播放| 亚洲欧美一区二区原创| 色哟哟免费视频| 国产男人搡女人免费视频| 九色porny丨国产精品| 亚洲大尺度视频在线观看| 亚洲图片在区色| 97超碰人人模人人爽人人看| 国产精品无码av无码| 久久国产波多野结衣| 亚洲欧美激情国产综合久久久| 久久噜噜亚洲综合| 精品久久99ma| 成人激情黄色网| 国产三区在线视频| 欧美人妻精品一区二区三区| 日韩国产在线观看| 日韩欧美在线视频| 久久久久久久久久久亚洲| 亚洲日本精品一区| 欧美激情视频二区| 青青草视频一区| 欧美性极品xxxx娇小| 久久久久久久电影一区| 日韩精品一区二区三区四区五区 | 色偷偷噜噜噜亚洲男人| 国产伦理久久久| 欧美视频国产视频| 在线观看毛片av| 国产亚洲欧美在线| 国产亚洲精品美女久久久久| 明星裸体视频一区二区| 中文字幕在线观看网址| 午夜影院在线视频| 91国偷自产一区二区使用方法| 久久久久久久久久久免费精品| 97干在线视频| 中文字幕亚洲精品一区| 国产色婷婷亚洲99精品小说| 亚洲美女动态图120秒| 精品一区二区日本| 加勒比一区二区| 免费xxxx性欧美18vr| 在线免费一区三区| 国产精品扒开腿做| 中文字幕在线视频一区二区| 韩国中文字幕hd久久精品| 亚洲成人综合网站| 国产精品香蕉在线观看| 夜夜爽久久精品91| 日韩精品一级中文字幕精品视频免费观看 | 亚洲天堂网av在线| 国产精品亚洲人在线观看| 欧美成人精精品一区二区频| 九九九久久久| 日本在线一级片| 中文字幕欧美日韩一区| 91精品国产高清| 日本亚洲一区二区三区| 日韩1区2区日韩1区2区| 日韩国产高清视频在线| 国产精品igao激情视频| 97人妻精品视频一区| 午夜不卡av在线| 成人动漫视频在线观看免费| 殴美一级黄色片| 国产精品情趣视频| 国产成人欧美在线观看| 污污污www精品国产网站| 久久国产生活片100| 日韩风俗一区 二区| 欧美一区二区视频在线播放| 97久久人国产精品婷婷| 欧美日韩在线观看一区二区 | 国产麻豆剧传媒精品国产| 日韩不卡免费视频| 国产亚洲欧美日韩美女| 日韩中文字幕三区| 空姐吹箫视频大全| 日韩av在线网页| 乱子伦视频在线看| 日韩国产在线一| 久久亚洲国产精品| 古装做爰无遮挡三级聊斋艳谭| 成人午夜av影视| 欧美综合在线第二页| 黄色免费一级视频| 亚洲亚洲精品在线观看| 久久精品日产第一区二区三区乱码 | 777a∨成人精品桃花网| 中文字幕日韩精品一区二区| 99热精品在线播放| 亚洲欧美国产精品| 日韩av加勒比| 久久久久久99久久久精品网站| 国产日韩欧美自拍| 日本三级2019| 日韩欧美在线观看一区二区三区| 日韩久久久久久久久久久久| 久久九九精品| 国自产精品手机在线观看视频| 日本少妇xxxxx| 婷婷久久综合九色综合伊人色| 三级三级久久三级久久18| 人妻少妇精品无码专区久久| 综合国产在线视频| 国产传媒第一页| 精品久久久久久久久久国产 | av中文在线播放| 欧美在线小视频| 毛片在线视频播放| 国产乱一区二区| 国产福利精品av综合导导航| 国产无遮无挡120秒| 日韩欧美黄色影院| 人妻换人妻仑乱| 亚洲免费观看高清完整版在线观看 | 欧美性高清videossexo| 中文字幕人妻熟女人妻洋洋| 久草在线在线精品观看| 国产成人精品a视频一区www| 久久精品无码av| 中文字幕日韩精品在线| 亚洲少妇xxx| 欧美日韩性生活| 婷婷激情5月天| 一区二区三区在线观看欧美| av日韩在线看| 久久久www成人免费毛片麻豆 | 性少妇xx生活| 91精品国产91久久综合桃花| 男女污污视频网站| 精品美女久久久久久免费| 国产超级av在线| 国产精品青草久久| 欧美中文字幕在线观看视频| 久久综合九色综合欧美就去吻 | 51精品免费网站| 日韩欧美在线影院| 波多野结衣福利| 制服丝袜中文字幕一区| 六十路息与子猛烈交尾| 在线观看不卡视频| 精品人妻一区二区乱码| 一本大道久久精品懂色aⅴ| 小早川怜子一区二区三区| 色婷婷国产精品久久包臀| 在线播放黄色av| 在线观看精品一区| 制服丝袜第二页| 欧美大片顶级少妇| 亚洲成人黄色av| 欧美一区二区三区四区在线观看| 亚洲久久久久久| 6080亚洲精品一区二区| 精品人妻一区二区三区蜜桃视频| 日韩精品一区二区三区四区| 在线不卡av电影| 国产视频自拍一区| 免费网站看av| 美女精品久久久| 中文字幕在线视频第一页| 欧美在线影院在线视频| 亚洲狼人综合网| 99精品欧美一区二区三区| 六月婷婷色综合| 日本欧美色综合网站免费| 久久久久久97三级| 男女无套免费视频网站动漫| 日本道色综合久久| 激情五月激情综合| 欧美乱人伦中文字幕在线| 中文字幕日本人妻久久久免费| 国产精品久久久久久久9999| 久久99精品网久久| 国产精品jizz在线观看老狼| 亚洲精品视频免费看| 麻豆av免费看| 伊人av综合网| 99免费在线视频| 久久精品综合一区| 国产精品久久久久久妇女6080| 午夜免费高清视频| 4hu四虎永久在线影院成人| 青青青在线免费观看| 欧美一级在线播放| 国产精品自拍三区| 国产成人精品视频免费看| 欧美日本韩国一区二区三区视频 | 久久中文字幕在线观看| 国产精品草莓在线免费观看 | 午夜精品福利一区二区| 亚洲欧洲国产日韩| 97精品人妻一区二区三区蜜桃| 亚洲乱码国产乱码精品精天堂| 国产亚洲久一区二区| 狠狠干一区二区| 亚洲天堂成人在线观看| 国产乱了高清露脸对白| 久久久国产91| 日韩高清不卡在线| 国产在线播放观看| 欧美一卡在线观看| 伊人久久成人网| 亚洲aⅴ天堂av在线电影软件| 亚洲超丰满肉感bbw| 天天操天天操天天操天天操天天操| 26uuu日韩精品一区二区| 高清国产一区二区| 无码人妻丰满熟妇区毛片蜜桃精品 | 欧美性生给视频| 国产97在线|亚洲| 国产色产综合产在线视频 | 日韩av在线电影网| 欧美视频在线观看一区二区三区| 美女黄色片网站| 日韩欧美成人一区二区| a级片免费观看| 青春草国产视频| 亚洲美女av电影| 午夜小视频在线播放| 欧美国产亚洲一区| 永久555www成人免费| 蜜臀精品久久久久久蜜臀| 国产超级av在线| 这里精品视频免费| 国产一区二区三区观看| 久久久精品人妻一区二区三区| 欧美成人免费播放| 99re热这里只有精品免费视频| 日本一区二区三区网站| 91精品免费看| 欧美视频在线观看免费| 中文字幕一区二区久久人妻| 久青草视频在线播放| 国产一区二区三区在线看| 国内成+人亚洲+欧美+综合在线| 国产人妖在线观看| 国产成人精品久久二区二区| 综合久久综合久久| 国产欧美一区二区三区在线看蜜臂| 亚洲国产精品日韩| 天堂av免费在线观看| 亚洲精品www久久久| 少妇精品无码一区二区免费视频 | 欧美高清videos高潮hd| 国产成人aaa| 337人体粉嫩噜噜噜| 国产乱码精品一区二区三区日韩精品 | 色婷婷av久久久久久久| 一本色道久久综合亚洲| 日韩欧美黄色大片| 日韩av电影中文字幕| 色综合欧美在线| 视频一区二区中文字幕| 国产熟女高潮一区二区三区| 国产另类第一区| 亚洲精品成a人在线观看| 成人美女视频在线观看| 国产亚洲欧美精品久久久www| www.黄色网址.com| 理论片在线不卡免费观看| 中文字幕一区二区三区精华液 | 水蜜桃亚洲精品| 欲色天天网综合久久| 日本一区二区在线不卡| 波多野结衣电车| xxx国产在线观看| 亚洲综合中文字幕68页| 欧美xxxx在线观看| 99精品桃花视频在线观看| 国产精品99无码一区二区| 免费一级特黄特色毛片久久看| 26uuu亚洲伊人春色| 欧美日韩在线三区| 丁香激情综合国产| 成年人免费高清视频| 午夜免费一区二区| 成人网在线免费看| 亚洲精品理论电影| 国产欧美日韩麻豆91| 亚洲av无码乱码国产精品久久| 一二三区视频在线观看| 天天爽天天狠久久久| 久久久久久一区二区三区| 欧美日韩极品在线观看一区| av电影在线观看一区| 在线观看免费观看在线| 亚洲图片综合网| 国内精品国产三级国产99| 日本最新高清不卡中文字幕| 欧美一区二区三区免费视频| 久久综合九色综合97婷婷女人| 精品国产av 无码一区二区三区 | www插插插无码视频网站| 国产精品视频导航| 亚洲精品视频中文字幕| 亚洲国产视频网站| 国产大片一区二区| 国产人妖一区二区| 亚洲 欧美 国产 另类| 三年中国国语在线播放免费| 蜜桃网站成人| 91av网站在线播放| 亚洲国产精品久久精品怡红院| 亚洲欧美日韩久久| 国产一区二区在线视频| 中文字幕av影视| 久久久久久视频| 亚洲综合在线一区二区| 欧美日韩视频免费在线观看| 91精品中国老女人| 欧美成人免费全部| 日韩av在线免播放器| 色狠狠桃花综合| 国产日韩高清在线| 美女久久久精品| 精品国产九九九| 九九九在线观看| 国产又色又爽又高潮免费| 国产老头和老头xxxx×|