99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

類和對(duì)象 [ 完結(jié) ]

類和對(duì)象 [ 完結(jié) ] 深入理解構(gòu)造函數(shù)初始化列表與隱式類型轉(zhuǎn)換在C中構(gòu)造函數(shù)負(fù)責(zé)對(duì)象的初始化。除了在函數(shù)體內(nèi)賦值還有一種更核心、更高效的初始化方式——初始化列表。同時(shí)C支持的單參和多參構(gòu)造函數(shù)的隱式類型轉(zhuǎn)換也為代碼編寫帶來了便利。本文將系統(tǒng)梳理這些知識(shí)點(diǎn)幫助您徹底掌握。一、初始化列表構(gòu)造函數(shù)的“真正初始化戰(zhàn)場(chǎng)”1. 什么是初始化列表初始化列表是構(gòu)造函數(shù)定義中位于函數(shù)體之前的一段以冒號(hào)開頭后跟逗號(hào)分隔的成員變量列表每個(gè)成員變量后面用括號(hào)給出初始值或表達(dá)式。class Date { public: // 初始化列表以冒號(hào)開始逗號(hào)分隔 Date(int year, int month, int day) : _year(year), _month(month), _day(day) { // 函數(shù)體這里已經(jīng)是賦值而非初始化 } private: int _year, _month, _day; };關(guān)鍵理解初始化列表是成員變量定義并初始化的地方。每個(gè)成員變量在初始化列表中只能出現(xiàn)一次??梢哉J(rèn)為無論你是否在初始化列表中顯式寫出某個(gè)成員它都會(huì)“走一遍”初始化列表——如果沒寫編譯器會(huì)嘗試用默認(rèn)方式初始化它。2. 必須在初始化列表中初始化的三種成員有些成員變量必須在初始化列表中顯式初始化否則編譯報(bào)錯(cuò)引用成員變量int ref;引用必須在定義時(shí)綁定一個(gè)對(duì)象不能先定義再賦值。const成員變量const int cst;const變量也必須在定義時(shí)初始化不能后續(xù)賦值。沒有默認(rèn)構(gòu)造函數(shù)的類類型成員MyClass obj;如果該類型沒有提供無參或全缺省的默認(rèn)構(gòu)造函數(shù)編譯器無法在初始化列表中自動(dòng)構(gòu)造它必須由你顯式傳參。class MyClass { public: MyClass(int x) {} // 只有帶參構(gòu)造無默認(rèn)構(gòu)造 }; class Test { private: int ref; // 引用 const int cst; // const變量 MyClass obj; // 無默認(rèn)構(gòu)造的類類型 public: // 必須使用初始化列表初始化上述三種成員 Test(int r, int c, int m) : ref(r), cst(c), obj(m) { // 函數(shù)體內(nèi)不能初始化這三種成員 } };3. 初始化列表與函數(shù)體的配合初始化列表和函數(shù)體并非互斥它們可以打配合初始化列表負(fù)責(zé)定義和初始化函數(shù)體負(fù)責(zé)進(jìn)一步的邏輯處理如錯(cuò)誤檢查、復(fù)雜賦值。class Test { private: int* _ptr; public: Date() : _ptr((int*)malloc(12)) { // 初始化列表分配內(nèi)存 // 函數(shù)體檢查并初始化內(nèi)存 if (_ptr nullptr) { perror(malloc fail); } else { memset(_ptr, 0, 12); } } };4. C11的成員聲明缺省值C11允許在成員變量聲明時(shí)直接給缺省值private: int _year 1; // 聲明時(shí)的缺省值 int _month 1; int _day 1;這個(gè)缺省值的作用是當(dāng)該成員在初始化列表中沒有被顯式初始化時(shí)編譯器會(huì)使用這個(gè)缺省值來初始化它。可以理解為缺省值是提供給初始化列表的“備選方案”。注意對(duì)于引用、const、無默認(rèn)構(gòu)造的類類型成員即使在聲明時(shí)給了缺省值也必須在初始化列表中顯式初始化否則依然編譯報(bào)錯(cuò)。因?yàn)榫幾g器認(rèn)為缺省值是“賦值邏輯”而非“初始化邏輯”而這三者必須通過初始化來綁定或構(gòu)造。5. 初始化列表的初始化順序重要初始化列表的執(zhí)行順序不是按照列表中的書寫順序而是嚴(yán)格按照成員變量在類中聲明的順序。這是因?yàn)槌蓡T變量在內(nèi)存中的布局由聲明順序決定初始化必須遵循該順序。class A { public: A(int a) : _a1(a), _a2(_a1) {} // 看起來先_a1后_a2 void Print() { cout _a1 _a2 endl; } private: int _a2 2; // 聲明_a2在前 int _a1 2; // 聲明_a1在后 }; int main() { A aa(1); aa.Print(); // 輸出結(jié)果1 隨機(jī)值_a2先初始化此時(shí)_a1未初始化 }如上例雖然初始化列表先寫_a1(a)但由于_a2在類中先聲明所以先初始化_a2值為未初始化的_a1再初始化_a1值為1。建議聲明順序與初始化列表順序保持一致以避免此類混淆。6. 總結(jié)初始化的完整規(guī)則每個(gè)成員變量都會(huì)走初始化列表顯式在初始化列表中直接用給定的值/表達(dá)式初始化。未在初始化列表中如果聲明處有缺省值使用缺省值。如果聲明處無缺省值內(nèi)置類型是否初始化取決于編譯器通常不處理為隨機(jī)值。自定義類型調(diào)用其默認(rèn)構(gòu)造函數(shù)無參/全缺省若沒有則編譯報(bào)錯(cuò)。引用、const、無默認(rèn)構(gòu)造的自定義類型必須在初始化列表中顯式初始化。最佳實(shí)踐盡量使用初始化列表來初始化所有成員這更高效也更能避免遺漏。二、構(gòu)造函數(shù)的隱式類型轉(zhuǎn)換C允許通過隱式類型轉(zhuǎn)換用其他類型的值直接構(gòu)造對(duì)象這極大地簡(jiǎn)化了代碼。1. 單參數(shù)構(gòu)造函數(shù)的隱式轉(zhuǎn)換當(dāng)構(gòu)造函數(shù)只有一個(gè)參數(shù)時(shí)或有缺省值使得可單參調(diào)用可以用賦值語法進(jìn)行隱式轉(zhuǎn)換class A { public: A(int a 0) { _a1 a; } // 單參數(shù)/全缺省構(gòu)造 private: int _a1; }; int main() { A aa1(1); // 直接構(gòu)造 A aa2 2; // 隱式類型轉(zhuǎn)換先用2構(gòu)造臨時(shí)A對(duì)象再拷貝構(gòu)造aa2編譯器通常會(huì)優(yōu)化為直接構(gòu)造 return 0; }實(shí)際上A aa2 2;等價(jià)于A aa2 A(2);會(huì)生成一個(gè)臨時(shí)對(duì)象但編譯器會(huì)優(yōu)化掉中間的臨時(shí)對(duì)象直接構(gòu)造。常性臨時(shí)對(duì)象生成的臨時(shí)對(duì)象具有常性const因此如果用引用綁定它必須加constcppconst A raa 2; // 正確const引用綁定臨時(shí)對(duì)象 // A raa 2; // 錯(cuò)誤非常量引用不能綁定臨時(shí)對(duì)象2. 多參數(shù)構(gòu)造函數(shù)的隱式轉(zhuǎn)換C11起C11開始支持多參數(shù)的隱式類型轉(zhuǎn)換使用花括號(hào)列表cppclass A { public: A(int a1, int a2) { _a1 a1; _a2 a2; } private: int _a1, _a2; }; int main() { A aa3 {1, 1}; // 多參數(shù)隱式轉(zhuǎn)換 const A raa4 {2, 2}; // const引用綁定臨時(shí)對(duì)象 return 0; }3. 實(shí)際應(yīng)用場(chǎng)景函數(shù)傳參隱式類型轉(zhuǎn)換在函數(shù)傳參時(shí)非常方便cppclass Stack { public: void Push(const A aa) { // 參數(shù)為const引用可以接收臨時(shí)對(duì)象 // ... } }; int main() { Stack st; A aa(3); st.Push(aa); // 傳已有對(duì)象 st.Push(3); // 隱式轉(zhuǎn)換3 - 臨時(shí)A對(duì)象再傳給Push st.Push({1,2}); // 多參數(shù)隱式轉(zhuǎn)換 return 0; }4. 禁止隱式類型轉(zhuǎn)換explicit關(guān)鍵字如果不想讓編譯器進(jìn)行這種隱式轉(zhuǎn)換可以在構(gòu)造函數(shù)前加explicit關(guān)鍵字cppclass A { public: explicit A(int a 0) { _a1 a; } }; int main() { A aa1(1); // 正確直接構(gòu)造 // A aa2 2; // 錯(cuò)誤禁止隱式轉(zhuǎn)換 return 0; }三、補(bǔ)充默認(rèn)構(gòu)造函數(shù)辨析默認(rèn)構(gòu)造函數(shù)是指可以無參調(diào)用的構(gòu)造函數(shù)包括編譯器自動(dòng)生成的默認(rèn)構(gòu)造函數(shù)如果用戶未定義任何構(gòu)造函數(shù)。用戶定義的無參構(gòu)造函數(shù)。用戶定義的全缺省構(gòu)造函數(shù)所有參數(shù)都有默認(rèn)值。以下代碼中的Date(int year, month, day)不是默認(rèn)構(gòu)造函數(shù)因?yàn)樗仨殏魅齻€(gè)參數(shù)cppclass Date { public: Date(int year, int month, int day) { /*...*/ } // 非默認(rèn)構(gòu)造 }; int main() { Date d1(2024, 7, 14); // 正確 Date d2; // 錯(cuò)誤沒有匹配的默認(rèn)構(gòu)造函數(shù) return 0; }如果希望Date有默認(rèn)構(gòu)造可以定義全缺省構(gòu)造函數(shù)或讓編譯器自動(dòng)生成需注意內(nèi)置類型默認(rèn)不初始化。四、析構(gòu)順序小貼士成員析構(gòu)順序與初始化順序聲明順序相反即先聲明的后析構(gòu)。多個(gè)對(duì)象析構(gòu)后創(chuàng)建的對(duì)象先析構(gòu)棧的后進(jìn)先出特性。以下是針對(duì) “必須在初始化列表中初始化的成員變量” 的示例#include iostream using namespace std; // 示例類沒有默認(rèn)構(gòu)造函數(shù)只定義了帶參構(gòu)造 class MyClass { public: // 只有帶參數(shù)的構(gòu)造函數(shù)無默認(rèn)構(gòu)造函數(shù) MyClass(int x) { cout MyClass 帶參構(gòu)造函數(shù)被調(diào)用x x endl; } }; class Test { private: int ref; // 引用成員變量 const int cst; // const成員變量 MyClass obj; // 沒有默認(rèn)構(gòu)造函數(shù)的類類型變量 public: // 必須使用初始化列表初始化上述三種成員變量 Test(int r, int c, int m) : ref(r), cst(c), obj(m) { // 注意以下操作都是錯(cuò)誤的不能在函數(shù)體內(nèi)初始化這三種變量 // ref r; // 錯(cuò)誤引用必須在定義時(shí)初始化 // cst c; // 錯(cuò)誤const變量必須在定義時(shí)初始化 // obj MyClass(m); // 錯(cuò)誤MyClass沒有默認(rèn)構(gòu)造函數(shù)此處會(huì)先調(diào)用默認(rèn)構(gòu)造再賦值導(dǎo)致編譯失敗 } }; int main() { int a 10; Test t(a, 20, 30); return 0; }說明引用成員變量ref引用必須在定義時(shí)立即綁定對(duì)象無法先定義再賦值因此必須在初始化列表中初始化。const 成員變量cstconst 變量一旦定義就不能修改必須在定義時(shí)初始化因此必須在初始化列表中指定初始值。沒有默認(rèn)構(gòu)造函數(shù)的類類型變量obj當(dāng)類中沒有默認(rèn)構(gòu)造函數(shù)時(shí)創(chuàng)建對(duì)象必須傳入?yún)?shù)。如果不在初始化列表中初始化編譯器會(huì)嘗試調(diào)用其默認(rèn)構(gòu)造函數(shù)導(dǎo)致編譯報(bào)錯(cuò)。#includeiostream using namespace std; class A { public: //如果不想讓類型轉(zhuǎn)換發(fā)生可以在構(gòu)造函數(shù)前加explicit函數(shù) /*explicit A(int a 0) { _a1 a; }*///多參數(shù)也是如此 A(int a 0)//單參數(shù)可以 { _a1 a; } A(int a1, int a2) { _a1 a1; _a2 a2; } A(const A aa) { _a1 aa._a1; } void Print() { cout _a1 _a2 endl; } private: int _a1 1; int _a2 2; }; class Stack { public: void Push(const A aa)//臨時(shí)對(duì)象具有常性要加const { //... } private: A _arr[10]; int _top; }; int main() { A aa1(1);//調(diào)用構(gòu)造 aa1.Print(); // 隱式類型轉(zhuǎn)換類型轉(zhuǎn)換會(huì)生成中間變量 // 2先構(gòu)造?個(gè)A的臨時(shí)對(duì)象再?這個(gè)臨時(shí)對(duì)象拷?構(gòu)造aa2 // 編譯器遇到連續(xù)構(gòu)造拷?構(gòu)造-優(yōu)化為直接構(gòu)造 //調(diào)試觀察 A aa2 2; aa2.Print(); A raa1 aa2; //A aa2 2;可以驗(yàn)證 //并不是直接構(gòu)造會(huì)生成臨時(shí)變量具有常性 const A aa2 2; //真正用意 Stack st; A aa3(3); st.Push(aa3); //寫起來更簡(jiǎn)單消耗是一樣的 st.Push(3); //多參數(shù) //A aa4 1, 1;//不支持 //但是C11后才支持多參數(shù)轉(zhuǎn)換 A aa4 { 1, 1 }; const A raa5 { 2,2 }; st.Push(aa4); st.Push({ 2,2 }); return 0; }注意初始化列表是他定義的地方那么每個(gè)成員都會(huì)去走初始化列表哪怕是不寫因?yàn)槭嵌x初始化的地方還有一類自定義類型EGclass Time { public: Time(int hour 1) :_hour(hour) { cout Time() endl; } private: int _hour; };不在初始化列表中定義 不寫也走只調(diào)用Time的默認(rèn)構(gòu)造函數(shù)無參/全缺省如果Time沒有默認(rèn)構(gòu)造調(diào)不到只能自己傳愛傳什么傳什么無默認(rèn)構(gòu)造class Time { public: Time(int hour) :_hour(hour) { cout Time() endl; } private: int _hour; }; class Date { public: Date(int xx, int year, int month, int day) : _year(year) , _month(month) , _day(day) , _n(1) , _ref(xx) , _t(1) {} void Print()const { cout _year 年 _month 月 _day 日 endl; } private: //聲明 int _year; int _month; int _day; const int _n; int _ref; Time _t; };初始化列表和函數(shù)體內(nèi)可以混著賦值EG初始化列表和函數(shù)體可以打配合Date() :_ptr((int*)malloc(12)) { //初始化列表和函數(shù)體內(nèi)可以混著賦值 if (_ptr nullptr) { perror(malloc fail); } else { memset(_ptr, 0, 12); } }C11 ?持在成員變量聲明的位置給缺省值這個(gè)缺省值主要是給沒有顯?在初始化列表初始化的成員使?的注意const 成員變量、引用成員變量、沒有默認(rèn)構(gòu)造的類類型變量即使在聲明時(shí)給了缺省值也必須在初始化列表中顯式初始化否則依然會(huì)編譯報(bào)錯(cuò)。編譯器會(huì)認(rèn)為缺省值是 “賦值邏輯”而非 “初始化邏輯”注定義是有開空間下列是聲明C11及后private: //聲明,后面為缺省值-初始化列表用的 int _year 1; int _month 1; int _day 1;;可以通過缺省函數(shù)理解只不過是給初始化類表用的結(jié)合下圖理解盡量使?初始化列表初始化因?yàn)槟切┠悴辉诔跏蓟斜沓跏蓟某蓡T也會(huì)?初始化列表如果這個(gè)成員在聲明位置給了缺省值初始化列表會(huì)?這個(gè)缺省值初始化。如果你沒有給缺省值對(duì)于沒有顯?在初始化列表初始化的內(nèi)置類型成員是否初始化取決于編譯器C 并沒有規(guī)定。對(duì)于沒有顯?在初始化列表初始化的?定義類型成員會(huì)調(diào)?這個(gè)成員類型的默認(rèn)構(gòu)造函數(shù)如果沒有默認(rèn)構(gòu)造會(huì)編譯錯(cuò)誤注意與默認(rèn)構(gòu)造函數(shù)區(qū)分可以無參調(diào)用全缺省無參的才是默認(rèn)構(gòu)造以下并不是#includeiostream using namespace std; class Date { public: Date(int year, int month, int day) : _year(year) , _month(month) //, _day(day)對(duì)于內(nèi)置類型是不做處理的可能是個(gè)隨機(jī)值 { } void Print()const { cout _year 年 _month 月 _day 日 endl; } private: //聲明,后面為缺省值-初始化列表用的 int _year 1; int _month 1; int _day 1;; }; int main() { Date d1(2024, 7, 14); d1.Print(); Date d2;//會(huì)報(bào)錯(cuò)所以并不是默認(rèn)構(gòu)造 return 0; }因此讓編譯器自動(dòng)生成默認(rèn)構(gòu)造便可行還有不僅僅可以給以上這種缺省值private: int _year 1; int _month 1; int _day 1;; int* _ptr (int*)malloc(12); Time _t 1;初始化列表中按照成員變量在類中聲明順序進(jìn)?初始化跟成員在初始化列表出現(xiàn)的先后順序?關(guān)。建議聲明順序和初始化列表順序保持?致成員析構(gòu)順序與聲明順序相反先構(gòu)造的 m1 后析構(gòu)后構(gòu)造的 m3 先析構(gòu)多個(gè)對(duì)象析構(gòu)時(shí)后創(chuàng)建的先析構(gòu)t2 比 t1 后創(chuàng)建t2 先析構(gòu)。例題下面程序的運(yùn)行結(jié)果是什么DA. 輸出 1 1B. 輸出 2 2C. 編譯報(bào)錯(cuò)D. 輸出 1 隨機(jī)值E. 輸出 1 2F. 輸出 2 1#includeiostream using namespace std; class A { public: A(int a) :_a1(a) , _a2(_a1) {} void Print() { cout _a1 _a2 endl; } private: int _a2 2; int _a1 2; }; int main() { A aa(1); aa.Print(); }因?yàn)槎x是先_a2后_a1,先對(duì)_a2進(jìn)行初始化這時(shí)候_a1的缺省值還沒發(fā)現(xiàn)給_a2的初始化就是編譯器自己決定的為_a1的隨機(jī)值將_a1的值給了_a2,再到_a1,將1的值給了_a1所以answer是D(調(diào)試很快發(fā)現(xiàn))總結(jié)盡可能寫初始化列表每個(gè)成員都要走初始化列表每個(gè)構(gòu)造函數(shù)都有初始化列表在初始化列表初始化的成員直接用顯示寫沒有在初始化列表的成員不顯示寫a. 聲明的地方有缺省值用缺省值b. 沒有缺省值內(nèi)置類型不確定看編譯器大概率是隨機(jī)值自定義類型調(diào)用默認(rèn)構(gòu)造沒有默認(rèn)構(gòu)造就編譯報(bào)錯(cuò)引用const沒有默認(rèn)構(gòu)造的自定義必須在初始化列表初始化不要把初始化列表和默認(rèn)構(gòu)造扯上關(guān)系初始化列表中按照成員變量在類中聲明順序在內(nèi)存中存放的順序進(jìn)行初始化聲明中的缺省值是給初始化列表用的缺省值是走初始化列表的2.類型轉(zhuǎn)換C ?持內(nèi)置類型隱式類型轉(zhuǎn)換為類類型對(duì)象需要有相關(guān)內(nèi)置類型為參數(shù)的構(gòu)造函數(shù)構(gòu)造函數(shù)前?加explicit就不再?持隱式類型轉(zhuǎn)換以下是展示 C 中內(nèi)置類型隱式轉(zhuǎn)換為類類型以及使用explicit關(guān)鍵字禁止隱式轉(zhuǎn)換的代碼示例#include iostream using namespace std; class MyInt { private: int value; public: // 普通構(gòu)造函數(shù)允許隱式轉(zhuǎn)換 MyInt(int v) : value(v) { cout MyInt 構(gòu)造函數(shù)被調(diào)用value v endl; } int getValue() const { return value; } }; class ExplicitInt { private: int value; public: // 用 explicit 修飾的構(gòu)造函數(shù)禁止隱式轉(zhuǎn)換 explicit ExplicitInt(int v) : value(v) { cout ExplicitInt 構(gòu)造函數(shù)被調(diào)用value v endl; } int getValue() const { return value; } }; // 測(cè)試函數(shù)參數(shù)為 MyInt 類型 void printMyInt(MyInt m) { cout printMyInt: m.getValue() endl; } // 測(cè)試函數(shù)參數(shù)為 ExplicitInt 類型 void printExplicitInt(ExplicitInt e) { cout printExplicitInt: e.getValue() endl; } int main() { // 1. 測(cè)試普通構(gòu)造函數(shù)允許隱式轉(zhuǎn)換 MyInt m1 10; // 隱式轉(zhuǎn)換int → MyInt調(diào)用 MyInt(10) printMyInt(20); // 隱式轉(zhuǎn)換int → MyInt調(diào)用 MyInt(20) // 2. 測(cè)試 explicit 構(gòu)造函數(shù)禁止隱式轉(zhuǎn)換 ExplicitInt e1(30); // 直接初始化允許 // ExplicitInt e2 40; // 錯(cuò)誤不允許隱式轉(zhuǎn)換編譯報(bào)錯(cuò) // printExplicitInt(50); // 錯(cuò)誤不允許隱式轉(zhuǎn)換編譯報(bào)錯(cuò) // 顯式轉(zhuǎn)換是允許的 ExplicitInt e3 ExplicitInt(40); // 顯式構(gòu)造 printExplicitInt(ExplicitInt(50)); // 顯式構(gòu)造后傳遞參數(shù) return 0; }代碼說明MyInt類其構(gòu)造函數(shù)未加explicit允許int類型隱式轉(zhuǎn)換為MyInt對(duì)象如MyInt m1 10或printMyInt(20)。ExplicitInt類其構(gòu)造函數(shù)加了explicit禁止隱式轉(zhuǎn)換ExplicitInt e2 40會(huì)編譯報(bào)錯(cuò)不允許隱式轉(zhuǎn)換printExplicitInt(50)會(huì)編譯報(bào)錯(cuò)不允許隱式轉(zhuǎn)換但顯式轉(zhuǎn)換如ExplicitInt(40)仍然允許。運(yùn)行結(jié)果MyInt 構(gòu)造函數(shù)被調(diào)用value 10 MyInt 構(gòu)造函數(shù)被調(diào)用value 20 printMyInt: 20 ExplicitInt 構(gòu)造函數(shù)被調(diào)用value 30 ExplicitInt 構(gòu)造函數(shù)被調(diào)用value 40 ExplicitInt 構(gòu)造函數(shù)被調(diào)用value 50 printExplicitInt: 50通過explicit關(guān)鍵字可以避免意外的隱式類型轉(zhuǎn)換增強(qiáng)代碼的可讀性和安全性。C 中 “內(nèi)置類型隱式轉(zhuǎn)換為類類型” 的原理本質(zhì)是編譯器自動(dòng)調(diào)用單參數(shù)構(gòu)造函數(shù)或可接收單個(gè)參數(shù)的構(gòu)造函數(shù)將內(nèi)置類型值轉(zhuǎn)換為目標(biāo)類的臨時(shí)對(duì)象。具體過程可拆解為 3 步當(dāng)需要一個(gè)類類型對(duì)象如函數(shù)參數(shù)、賦值操作的右側(cè)但實(shí)際提供的是一個(gè)內(nèi)置類型值時(shí)編譯器會(huì)檢查該類是否有以該內(nèi)置類型為參數(shù)的構(gòu)造函數(shù)可以是單參數(shù)構(gòu)造或其他參數(shù)有默認(rèn)值的多參數(shù)構(gòu)造如MyClass(int a, int b0)可接收單個(gè)int。若存在這樣的構(gòu)造函數(shù)編譯器會(huì)自動(dòng)調(diào)用該構(gòu)造函數(shù)創(chuàng)建一個(gè)臨時(shí)的類對(duì)象用內(nèi)置類型值初始化這個(gè)臨時(shí)對(duì)象。這個(gè)臨時(shí)對(duì)象會(huì)被用來參與后續(xù)操作如傳遞給函數(shù)參數(shù)、賦值給類對(duì)象等。3.static成員?static修飾的成員變量稱之為靜態(tài)成員變量靜態(tài)成員變量?定要在類外進(jìn)?初始化內(nèi)只能對(duì)靜態(tài)成員變量進(jìn)行聲明需用static關(guān)鍵字不能直接初始化。必須在類外單獨(dú)初始化格式為類型 類名::靜態(tài)成員變量名 初始值;不加static關(guān)鍵字。例外情況對(duì)于靜態(tài)常量成員變量static constC11 允許在類內(nèi)直接初始化但仍可在類外初始化以類外為準(zhǔn)。對(duì)于模板類的靜態(tài)成員變量初始化規(guī)則略有不同可在類內(nèi)或類外初始化視具體場(chǎng)景而定。示例代碼class Test { public: // 類內(nèi)聲明靜態(tài)成員變量不可直接初始化除 static const 外 static int a; // 正確聲明 static const int b 10; // 正確靜態(tài)常量可在類內(nèi)初始化C11 起 // static int c 20; // 錯(cuò)誤非 const 靜態(tài)成員不能在類內(nèi)初始化 }; // 類外初始化靜態(tài)成員變量必須做 int Test::a 0; // 正確類外初始化 // const int Test::b 30; // 可選若類內(nèi)已初始化類外可再次初始化覆蓋類內(nèi)值 int main() { return 0; }個(gè)人問題提出static 加上了 const那干嘛不直接使用const也就是這兩個(gè)有什么區(qū)別static const和普通const成員變量的核心區(qū)別在于作用域和存儲(chǔ)方式二者適用場(chǎng)景不同不能簡(jiǎn)單替代static const成員變量屬于類級(jí)別的常量所有對(duì)象共享同一份數(shù)據(jù)存儲(chǔ)在全局?jǐn)?shù)據(jù)區(qū)不占用對(duì)象內(nèi)存。可通過類名::成員名直接訪問無需創(chuàng)建對(duì)象。常用于表示類的公共常量如類的版本號(hào)、默認(rèn)配置等。class Config { public: static const int MAX_SIZE 1024; // 所有對(duì)象共享此常量 }; // 使用時(shí)無需創(chuàng)建對(duì)象 int main() { cout Config::MAX_SIZE endl; // 直接訪問 return 0; }普通const成員變量屬于對(duì)象級(jí)別的常量每個(gè)對(duì)象都有獨(dú)立的副本存儲(chǔ)在對(duì)象內(nèi)存中。必須通過對(duì)象訪問且初始化后當(dāng)前對(duì)象內(nèi)不可修改但不同對(duì)象可有不同初始值。常用于表示對(duì)象獨(dú)有的常量屬性如學(xué)生的學(xué)號(hào)、身份證號(hào)等。class Student { private: const int id; // 每個(gè)學(xué)生有唯一且不可修改的學(xué)號(hào) public: Student(int i) : id(i) {} // 必須在初始化列表中賦值 }; int main() { Student s1(1001); // id1001對(duì)象1的常量 Student s2(1002); // id1002對(duì)象2的常量 return 0; }若常量屬于類本身所有對(duì)象共享且邏輯一致用static const。若常量屬于每個(gè)對(duì)象不同對(duì)象可能有不同值用普通const。二者的設(shè)計(jì)初衷不同不能相互替代。靜態(tài)成員變量為當(dāng)前類的所有對(duì)象所共享不屬于某個(gè)具體的對(duì)象不存在對(duì)象中存放在靜態(tài)區(qū)?static修飾的成員函數(shù)稱之為靜態(tài)成員函數(shù)靜態(tài)成員函數(shù)沒有this 指針如果_scount是私有的那么指定類域的方式就行不通了這時(shí)候就可以提供一個(gè)靜態(tài)的成員函數(shù)static int GetACount() { return _scount; } // 靜態(tài)成員函數(shù)中 return _scount 的本質(zhì)是 return 類名::_scount編譯器會(huì)自動(dòng)補(bǔ)充類域而非依賴 this 指針的對(duì)象成員訪問。 // 如果 _scount 不是 static 修飾的普通成員變量那么在靜態(tài)成員函數(shù)中直接訪問 _scount 會(huì)編譯報(bào)錯(cuò)。靜態(tài)成員函數(shù)中可以訪問其他的靜態(tài)成員但是不能訪問非靜態(tài)的因?yàn)闆]有 this 指針static int GetACount() { _a;//報(bào)錯(cuò)//不能訪問?靜態(tài)的因?yàn)闆]有this指針 return _scount; }非靜態(tài)的成員函數(shù)可以訪問任意的靜態(tài)成員變量和靜態(tài)成員函數(shù)void func() { cout _scount endl; cout GetACount() endl; }突破類域就可以訪問靜態(tài)成員可以通過類名靜態(tài)成員或者對(duì)象.靜態(tài)成員來訪問靜態(tài)成員變量和靜態(tài)成員函數(shù)cout A::GetACount() endl; cout a1.GetACount() endl;靜態(tài)成員也是類的成員受public、protected、private訪問限定符的限制(類里面定義的靜態(tài)成員變量某種程度上可以理解為靜態(tài)的全局只是受類域的限制也就是他的生命周期是全局的且不屬于某個(gè)對(duì)象嚴(yán)格來說只能在所在的類里面使用類外面也行只是受訪問限定符的限制)靜態(tài)成員變量不能在聲明位置給缺省值初始化因?yàn)槿笔≈凳墙o構(gòu)造函數(shù)初始化列表的靜態(tài)成員變量不屬于某個(gè)對(duì)象不?構(gòu)造函數(shù)初始化列表4.友元友元提供了?種突破類訪問限定符封裝的?式友元分為友元函數(shù)和友元類在函數(shù)聲明或者類聲明的前?加friend并且把友元聲明放到?個(gè)類的??外部友元函數(shù)可訪問類的私有和保護(hù)成員友元函數(shù)僅僅是?種聲明它不是類的成員函數(shù)友元函數(shù)可以在類定義的任何地?聲明不受類訪問限定符限制?個(gè)函數(shù)可以是多個(gè)類的友元函數(shù)我不僅僅和你還要和別人做朋友#includeiostream using namespace std; // 前置聲明不然則A的友元函數(shù)聲明編譯器不認(rèn)識(shí)B//-----注意點(diǎn) class B;//-----解決點(diǎn) class A { // 友元聲明 friend void func(const A aa, const B bb);//-----問題點(diǎn) private: int _a1 1; int _a2 2; }; class B { // 友元聲明 friend void func(const A aa, const B bb); private: int _b1 3; int _b2 4; }; void func(const A aa, const B bb) { cout aa._a1 endl;//~~~~~~~~~~~~~~~~~~~~~~~~~ cout bb._b1 endl;//一個(gè)函數(shù)成為多個(gè)類的友元 } int main() { A aa; B bb; func(aa, bb); return 0; }友元類中的成員函數(shù)都可以是另?個(gè)類的友元函數(shù)都可以訪問另?個(gè)類中的私有和保護(hù)成員#includeiostream using namespace std; class A { // 友元聲明 friend class B;//把B定義成A的友元類-----解決點(diǎn)---B的成員函數(shù)都成為了A的友元函數(shù) private: int _a1 1; int _a2 2; }; class B { public://B要一直訪問A類的私有保護(hù)成員-----問題點(diǎn) void func1(const A aa) { cout aa._a1 endl; cout _b1 endl; } void func2(const A aa) { cout aa._a2 endl; cout _b2 endl; } private: int _b1 3; int _b2 4; }; int main() { A aa; B bb; bb.func1(aa); bb.func1(aa); return 0; }友元類的關(guān)系是單向的不具有交換性?如A類是B類的友元但是B類不是A類的友元友元類關(guān)系不能傳遞如果A是B的友元 B是C的友元但是A不一定是C的友元有時(shí)提供了便利。但是友元會(huì)增加耦合度破壞了封裝所以友元不宜多?個(gè)人問題提出基類中聲明友元是不是直接可以訪問其子類相反呢基類中聲明的友元與子類的訪問關(guān)系以及子類中聲明的友元與基類的訪問關(guān)系遵循以下規(guī)則1. 基類的友元不能直接訪問子類的私有 / 保護(hù)成員基類的友元僅能訪問基類自身的私有 / 保護(hù)成員無法自動(dòng)訪問子類的私有 / 保護(hù)成員即使子類繼承了基類。子類的成員包括從基類繼承的成員中只有子類自己聲明為public的成員才能被外部訪問私有 / 保護(hù)成員受子類自身的訪問限定符保護(hù)與基類的友元無關(guān)。示例class Base { friend void FriendFunc(Base b); // 友元函數(shù)聲明 protected: int _base_val 10; }; class Derived : public Base { private: int _derived_val 20; // 子類私有成員 }; void FriendFunc(Base b) { // 可以訪問基類的保護(hù)成員 cout b._base_val endl; // 若傳入子類對(duì)象仍無法訪問子類的私有成員 Derived d (Derived)b; // 強(qiáng)制轉(zhuǎn)換為子類引用 // cout d._derived_val endl; // 錯(cuò)誤無法訪問子類私有成員 }2. 子類的友元不能直接訪問基類的私有 / 保護(hù)成員子類的友元僅能訪問子類自身的私有 / 保護(hù)成員無法訪問基類的私有 / 保護(hù)成員除非基類主動(dòng)將該友元聲明為自己的友元。基類的私有 / 保護(hù)成員僅對(duì)基類自身和基類聲明的友元開放與子類的友元無關(guān)。示例class Base { private: int _base_val 10; // 基類私有成員 }; class Derived : public Base { friend void FriendFunc(Derived d); // 子類友元聲明 private: int _derived_val 20; }; void FriendFunc(Derived d) { // 可以訪問子類的私有成員 cout d._derived_val endl; // 無法訪問基類的私有成員即使子類繼承了基類 // cout d._base_val endl; // 錯(cuò)誤無法訪問基類私有成員 }總結(jié)友元關(guān)系是單向且局限于聲明它的類與繼承關(guān)系無關(guān)?;惖挠言?→ 只能訪問基類的私有 / 保護(hù)成員無權(quán)訪問子類的私有 / 保護(hù)成員。子類的友元 → 只能訪問子類的私有 / 保護(hù)成員無權(quán)訪問基類的私有 / 保護(hù)成員。若需要跨類訪問必須在對(duì)應(yīng)的類中單獨(dú)聲明友元如基類想讓子類的友元訪問自己需在基類中額外聲明該友元。5.內(nèi)部類如果一個(gè)類定義在另一個(gè)類的內(nèi)部這個(gè)內(nèi)部類就叫做內(nèi)部類。內(nèi)部類是一個(gè)獨(dú)立的類跟定義在全局相比它僅僅只是受外部類類域限制和訪問限定符限制所以外部類定義的對(duì)象中不包含內(nèi)部類內(nèi)類不是不屬外類的成員內(nèi)部類默認(rèn)是外部類的友元類我是你的朋友所以我可以訪問你的私有內(nèi)部類本質(zhì)也是一種封裝當(dāng) A 類跟 B 類緊密關(guān)聯(lián)A 類實(shí)現(xiàn)出來主要就是給 B 類使用那么可以考慮把 A 類設(shè)計(jì)為 B 的內(nèi)部類如果放到 private/protected 位置那么 A 類就是 B 類的專屬內(nèi)部類其他地方都用不了#includeiostream using namespace std; class A { private: static int _k; int _h 1; public: class B // B默認(rèn)就是A的友元 { public: void foo(const A a) { cout _k endl; //OK cout a._h endl; //OK } private: int _b 1; }; }; int A::_k 1; int main() { cout sizeof(A) endl;//4:實(shí)際上只有一個(gè)_h,沒帶_b//B不是A的成員 A::B b;//指定B是屬于A的類域受訪問限定符限制 A aa; b.foo(aa); return 0; }6.匿名對(duì)象用“類型 (實(shí)參)”定義出來的對(duì)象叫做匿名對(duì)象相比之前用“類型 對(duì)象名 (實(shí)參)”定義的對(duì)象后者被稱為有名對(duì)象匿名對(duì)象的生命周期只在當(dāng)前一行一般用于臨時(shí)定義一個(gè)對(duì)象并立即使用比如調(diào)用成員函數(shù)、傳遞參數(shù)用完后下一行就會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)匿名對(duì)象的核心作用就是簡(jiǎn)化代碼、提升便捷性避免為臨時(shí)使用的對(duì)象額外定義一個(gè)對(duì)象名。 代碼示例匿名對(duì)象 vs 有名對(duì)象#include iostream using namespace std; class MyClass { public: MyClass(int val) : _val(val) { cout 構(gòu)造函數(shù)val _val endl; } ~MyClass() { cout 析構(gòu)函數(shù)val _val endl; } void ShowVal() { cout 當(dāng)前值 _val endl; } private: int _val; }; int main() { // 1. 有名對(duì)象需要定義對(duì)象名生命周期到作用域結(jié)束main函數(shù)結(jié)束 cout 有名對(duì)象 endl; MyClass obj(10); // 有名對(duì)象對(duì)象名obj obj.ShowVal(); // 通過對(duì)象名調(diào)用成員函數(shù) // 2. 匿名對(duì)象無對(duì)象名生命周期僅當(dāng)前行 cout \n 匿名對(duì)象 endl; MyClass(20).ShowVal(); // 匿名對(duì)象直接調(diào)用成員函數(shù)一行內(nèi)用完即析構(gòu) cout \n main函數(shù)即將結(jié)束 endl; return 0; } 運(yùn)行結(jié)果與分析 有名對(duì)象 構(gòu)造函數(shù)val 10 當(dāng)前值10 匿名對(duì)象 構(gòu)造函數(shù)val 20 當(dāng)前值20 析構(gòu)函數(shù)val 20 // 匿名對(duì)象在當(dāng)前行結(jié)束后立即析構(gòu) main函數(shù)即將結(jié)束 析構(gòu)函數(shù)val 10 // 有名對(duì)象在作用域結(jié)束main結(jié)束后析構(gòu)從結(jié)果能明顯看到匿名對(duì)象在調(diào)用完ShowVal()后立刻析構(gòu)而有名對(duì)象要等到main函數(shù)結(jié)束才析構(gòu)這正是二者生命周期的核心區(qū)別。7.對(duì)象拷貝時(shí)的編譯器優(yōu)化現(xiàn)代編譯器會(huì)為了盡可能提高程序效率在不影響代碼正確性的前提下盡量減少傳參和傳返回值過程中可省略的拷貝操作通常稱為 “拷貝省略” 優(yōu)化關(guān)于如何優(yōu)化C 標(biāo)準(zhǔn)并未做嚴(yán)格規(guī)定具體優(yōu)化邏輯由各個(gè)編譯器自行決定。當(dāng)前主流的較新版本編譯器會(huì)對(duì)單個(gè)表達(dá)式內(nèi)連續(xù)的拷貝操作進(jìn)行合并優(yōu)化部分更新、更 “激進(jìn)” 的編譯器甚至?xí)С挚绱a行、跨表達(dá)式的拷貝合并優(yōu)化。示例類#includeiostream using namespace std; class A { public: A(int a 0) :_a1(a) { cout A(int a) endl; } A(const A aa) :_a1(aa._a1) { cout A(const A aa) endl; } A operator(const A aa) { cout A operator(const A aa) endl; if (this ! aa) { _a1 aa._a1; } return *this; } ~A() { cout ~A() endl; } void Print() { cout A::Print _a1 endl; } private: int _a1 1; };單參數(shù)類型的構(gòu)造函數(shù)的隱式類型轉(zhuǎn)化的優(yōu)化示例int main() { //單參數(shù)類型的構(gòu)造函數(shù)的隱式類型轉(zhuǎn)化 A aa1 1;//構(gòu)造加拷貝構(gòu)造構(gòu)造臨時(shí)對(duì)象對(duì)臨時(shí)對(duì)象進(jìn)行拷貝構(gòu)造因?yàn)轭愋娃D(zhuǎn)化會(huì)產(chǎn)生臨時(shí)對(duì)象 //開始執(zhí)行發(fā)現(xiàn)編譯器優(yōu)化成直接拷貝 const A aa2 1;//生成臨時(shí)對(duì)象是引用沒有拷貝構(gòu)造 return 0; }傳參優(yōu)化示例void f1(A aa)//傳值傳參---會(huì)產(chǎn)生一個(gè)拷貝 {} void f2(A aa) {} int main() { A aa1(1);//構(gòu)造 //f1(aa1);//實(shí)參傳給形參進(jìn)行拷貝調(diào)用構(gòu)造拷貝構(gòu)造//不會(huì)優(yōu)化一般是在連續(xù)一個(gè)步驟才有優(yōu)化//但是不排除其他更激進(jìn)的 cout endl; //用引用減少拷貝構(gòu)造 f2(aa1); cout endl; //用匿名對(duì)象在連續(xù)過程 f1(A(1));//優(yōu)化成直接構(gòu)造 cout endl; f1(1);//本意是1走隱式類型轉(zhuǎn)化生成臨時(shí)對(duì)象再拷貝構(gòu)造優(yōu)化成直接構(gòu)造 cout endl; return 0; }傳返回值優(yōu)化示例A f3()//傳值傳參返回會(huì)產(chǎn)生一個(gè)臨時(shí)對(duì)象因?yàn)閍a出了作用域就銷毀了 { A aa(1); return aa;//產(chǎn)生臨時(shí)對(duì)象 } //應(yīng)該是aa作為局部對(duì)象出了作用域銷毀調(diào)用~A()由aa產(chǎn)生臨時(shí)對(duì)象調(diào)用Print //VS2022優(yōu)化嚴(yán)格來說沒有生成aa合二為一只生成臨時(shí)對(duì)象看執(zhí)行結(jié)果可推 int main() { f3().Print();//因?yàn)榕R死對(duì)象構(gòu)造拷貝構(gòu)造//用產(chǎn)生的臨時(shí)對(duì)象調(diào)用Print//臨時(shí)對(duì)象的周期就在這一行 cout endl; return 0; }A f4() { A aa(1);//構(gòu)造 return aa;//拷貝構(gòu)造 } //優(yōu)化省略了臨時(shí)對(duì)象VS2022更激進(jìn)連aa都省掉了建議用2019-debug觀察 int main() { A ret f4();//拷貝構(gòu)造 ret.Print(); cout endl; return 0; }A f4() { A aa(1);//構(gòu)造 cout ~~~~~~~~~ endl;//構(gòu)造了aaaa充當(dāng)臨時(shí)對(duì)象 return aa;//拷貝構(gòu)造 } int main() { A ret; ret f4();//賦值//賦值完后。臨時(shí)對(duì)象析構(gòu) ret.Print(); cout endl; return 0; }
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩成人影片在线观看| 色狠狠色狠狠| 超碰免费电影| 欧美日韩AAA| 超碰在线观看9| 亚洲狠狠爱婷婷| 久久久久久9| 婷婷五月天熟妇| 天天色天天射天天日| 丁香五月激情五月色综合| 99热精品在线| 伊人五月天在线| 成年人最刺激的综合网| 人妻久久久久久久久久久| 色色综合成人网| 精品99视频| 少妇AB又爽又紧无码网站 | 极品人妻VIDEOSSS人妻| 性爱综合网| 成人五月天丁香婷| WWW色五月天| 大香蕉人人网| 狠干综合| 丁香五月AV| 182无码| 狠狠干综合| 日本丁香五月| 91久久九久久九久久九久久九久久| 五月天激情图| 日日夜夜爽| 午夜丁香六月婷| 丁香五月1页| 99无码超碰| 艹天天射| 日本美女上人| 开心五月天私房婷婷| 日韩精品超碰在线观看| 久久丁香五月| 婷婷五月激情四月综合| 99re这里只有精品国产99| 啪啪黄页网| 九伊人网| 久久精品五月天| 熟美女麻豆| 高清a片基地| 97色精品视频| 超级碰碰碰91| 91久久| 婷婷五月天激情电影| 激情图片99| 婷婷综合网性| 九玖视频这里只有精品| 色亚洲婷婷| 综合色天天| 五月丁香六月欧美综合| 999影院成人在线影院| 丁香五月六月婷婷殴美综合| 综合激情五月婷婷| 性爱久久| 丁香六月综合| 99热这里只有精品8| 五月婷婷影院| 婷婷狠狠综合网入口| 亚洲综合五月天婷婷| 性爱网五月婷婷| 亚洲岛国电影| 丁香五月综合婷婷| 丁香六月婷婷高清| 操一操干一干| 99热99色| 激情综合婷婷久久| 九九99在线观看视频| A一级操| 五月婷婷丁香五月亚洲色| 久久人妻情侣| www色五月| 狠狠色狠狠操| 啪啪啪丁香五月| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 玖玖99福利| 婷婷六月天精品| 亚洲99视频| 久久 视频这里只有精总| 可以观看的AV| 九九色逼| 另类激情码| 丁香五月天AV在线| www.婷婷五月| 国产亚洲精品久久久久苍井松| 91免费啪视频| 成人精品在线| 亚洲性爱区无码区| 五月丁香六月成人| 欧美性交一区二区三区| 99热精在线九九久久保| 久久香蕉丁香| 综合色图婷婷| 五月丁香婷婷爱激情综合网| 这里精品| 欧美丰满熟妇BBB久久久| 九九五月天| 成人无码精品1区2区3区免费看| 色八戒操婷婷| 婷婷开心青青草| 成人开心五月天| 97色干| 五月丁香综合色婷婷| 在线视频激情网站| 激情五月少妇| 久久小说| 久热九九| 九九99精品视频| 日韩免费视频| 激情宗合哪里能看| 99激情在线| 91无码一起草| 亚洲激情五月婷婷日日| 天天搞天天爽| www.91.com黄| 少妇搡BBBB搡BBB搡毛茸茸 | 九九色黄色| 五月天丁香网| 丁香五月天天| 99热新网址| 色九四色| 97久久香草精品视频| 99视频在线播放大全| 久久久国产精品黄毛片| 99爱免费在线观看| 99热精品在线观看| 亚洲精品网站色视频| 夜夜骑夜夜操| 婷婷五月欧美| 丁香五月婷老师| 嫩BBB槡BBBB搡BBBB| 亚洲无码yw| 欧美日本一区二区三区| AA片在线观看视频在线播放| 国产日韩欧美性生活| 久99久精品| 日韩AV一区二区三区| wwccc久久久| 一起草性爱不卡视频| 大香蕉狠狠爱主页| 夜夜操狠狠操| 伊人五月婷婷国产视频| 欧美va在线观看| 久久婷婷超碰| 激情综合色婷婷啪啪六月天| 中文字幕在线aⅴ免费观看| 五月婷婷中字在线| 99视频内射三四| 秋霞免费三级片| 天天日夜夜| 久久伊人婷| 五月丁香婷婷成人综合网| 可以观看的AV| 五月天色站| 日本五月天一页| 99热亚洲只有色| 综合狠狠干| 99热色精品| 另类小说五月天| 另类视在线| 第四色网婷婷| 国产激情综合五月久久| 五月色综合| 亚洲五月婷| 丁香伊人网| www.henhenl| 狠狠色五月| 五月婷婷丁香五月婷婷丁香| 九九热99免费视频| 第五色婷婷| 色婷婷五月天亚洲| 婷婷中合| 激情五月天色播| 9999热在线观看| jiZZdr| 一起草无码| www.maotanji.com| www.xtbsty.cn.com蜜乳AV| 婷婷伊人| 婷婷五月美女直播| 99精品视频偷拍| 91一起艹| 丁香成人综合| 91狠狠色丁香婷婷综合久久| 激情综合网之激情五月| 五月丁香六月综合图| 99热这里只有精品最新网址| AV色婷婷| 少妇大叫太大太粗太爽了A片| 情情五月天色| 任你干嘛免费视频播放| 亚洲热视频| 久久狠狠色| 色啪久| 五月婷婷激情综合av| 婷婷涩涩五月天| www.日日夜夜.com| 精品无码99| 无码动漫AV| 中文字幕AV在线播放| 天天婷婷综合| 99热很操老逼| 九九黄色网| 91丨九色丨白浆| 精品人妻伦一二三区久久| 在线区区区| 婷婷丁香91综合| 丁香五月中文字幕色播| 色婷婷丁香五月在线| 九月婷婷在线视频| 亚洲黄色影视| 久久少妇视频| 九九视频这里是精品五月| 日本综合九九| 亚洲无码99| 天天爽天天爽夜夜爽| 欧美激情久| 久久婷婷六月综合综合| 激情五月天com| 97干在线| 日本人人草草| 男女激情久久| 国产精品a无线| 99久久极情精品一区| 久久久久婷婷| 色九综合| 亚洲综合色成丁香五月色| 激情爱爱网站超大免费| 午夜激情五月| 色青青五月| 亚洲AV免费在线| 5月婷婷激情6月| 97热精品| 综合婷| 在线不卡视频| 色综合激情| 丁香五月激情鲁| 中文字幕婷婷| 99在线视频资源| 91 欧美| 亚洲1区| 久久视频在线| 五月色丁香激情| 亚洲另类在线观看| 区美毛片子| 精品热九九| 天天操天天操天天操天天操天天操| 色婷婷视频在线| 日本va欧美va精品发布视频 | 六月丁香婷婷六月激情综合| 色五月五月丁香| 丁香六月婷婷综合| 国产avapp 网| 成人色图情色成人网 www.5b5b5bcom 五月天| 成人无码髙潮喷水A片| 生活片五区| 婷婷五月丁香综合人妻| 九九热婷婷| 丁香五月AV综合| 色色色色色五月| 综合色在线| 日本三级日本三级99| 国产这里只有精品| 亚洲激情五月天| 开心综合激情综合| 色色色色色色97| 永久思思热在线| 97色97干| 伊人碰碰碰| 91性人人| 91精品综合久久婷婷九色| 婷婷五月丁香综合网| 婷婷五月色| 久久伊人大香蕉| 六月久久婷婷| 丁香激情网| 啪啪综合| 五月丁香综合在线| 任你草| 亚洲色色色| 怡红院视频| 久久精品9| 精品99在线| 一丁香五月天月AV| 91狠狠色色丁香婷婷综合久久| 亚洲情欲| 丁香五月综合激情性爱| 婷婷久久精品| 亚洲综合五月天婷婷| 99久久久久| 亚洲综合成人网| www.五月婷婷| 9l视频自拍9l九色成人| 九八Av| 先锋影音av色五月天资源站| www99精品亚| AV大片在线观看| 天天视频精品9| 99人人看| 影音先锋一区二区三区| 五月天天天综合| 激情五月深爱五月| 色五月色五天色情网| 国产精品久久久60086| 国产精品久久久久久五月天加勒比| 狠狠肏综合网| www.henhengan| 五月天桃色深爱网| 九九综合精品| 夜精品无码A片一区二区蜜桃| av国产精品| 日逼AV影音先锋男人资源站| av免费在线网站| 激情五月天视频| 丁香香五月激情免费视频| 五月天成人伊人| www.ppypp| 久久人人妻| 99热综合网| 99爱视频在线观看这里只有精品| 欧美成人AAA片一区国产精品| 97伦乱| 婷婷久久婷婷色五月| 小色小蛇伊人婷婷色香五月| 新99思思视频| 天天插天天爽| 亚洲综合在线视频| 亚洲免费av观看| 日韩成人免费电影| 韩国三级五月天婷婷。| 99热婷婷| 精品操逼一区二区| 婷婷,五月天,丁香,第一| 中文字幕丁香五月| 丁香九九九九| 亚洲黄色操逼| 天天爽爽日日做做| 丁香激情网| 6月丁香婷婷激情| 五月丁香婷婷三级| 99热免费在线| 五月婷综合| 亚洲综合九九| 这里只有精品免费视频| 99国产精品久久久久久久久久久 | 另类的婷婷| 天天操夜夜橾| 无码免费人妻A片AAA毛片西瓜| 青青草网武则天| 色色色777| 久久人妻www| 四色五月婷婷| 色色色婷| 丁香五月婷久久| 99热只有| 日本久久婷| 婷婷丁香五月亚洲综合网在线视频观看| 99热在线精品播放| 97久操| 丁香五月亭亭六月综合激情网| 久久综合五月天| 激情第四色| 99乱视频| 激情图片五月天| 国产成人精品一区二三区熟女在线 | 久草狼人| 婷婷夜夜操| 99性爱视频| 99黄色在线视频精品熟女| 五月婷婷干| 另类天堂| 日本久久视频| 九九视频在线观看| 色情网综合| 99热国产国产| 成人av免费观看| 97香蕉久久超级碰碰高清版| 能看的AV| 狠狠色九月| 一级二级香港秋霞欧美欧美秋霞| A片试看120分钟做受视频红杏 | 激情久久综合| 亚洲综合在线播放| 99久久婷婷五月综合| 伊人大香蕉毛片| 影音先锋激情网| 色色网站在线| 九九精品视频免费在线| 色婷婷小说| 99在线资源| 五月激情六月综合| 欧美婷婷九月| 一本色道久久综合狠狠躁小说| 五月丁香婷婷激情图片| 丁香五月五婷| 五月婷丁香久久综合| 久色国产| 国产三级在线播放| 精品人妻久久久久久| 男人的天堂在线婷婷| 九九热区一区二区三区| se色婷婷视频| 另类五月激情| 国产成人AV在线播放| 99亚州综合精品成人网| 九九av在线| 五月天婷婷无码| 97久久超级| 婷婷综合精品视频97| 日韩AC在线免费观看| 6080av| 国产精品久久久久久喷浆| 狠狠色情婷婷| 丁香五月婷婷总啪啪| 天天舔天天摸天天透| 亚洲亚洲人成综合网络| 日韩无码色色| 五月丁香色综合| 丁香六月激情| 天天久久66xxx| 激情五月综合| 五月丁香青草综合啪啪| 婷婷黄色五月| 超碰91在线| 99噜噜噜在线播放| 9视频在线成人网站| 99热这里只有精品最新网址| 综合伊人久久| 婷婷俺去也| 99热国产国产| 高清 码 免费看片短视频| 五月天婷婷伊人| 99er日韩| 激情五月婷婷视频| 五月天激情啪啪| 色色色综合色| 4399无码视频| 婷婷五月色激情欧美激情| 91色噜噜狠狠狠狠色综合| 99热国产精品| 色五月婷婷开心| 色婷婷四虎| 黄网免费看| www.91.com处女在线直播| 超碰只有精品在线| 久久99精品久久久久久噜噜| 99在线观看这里都是精品 | www好屌操| 日本三日本三级少妇三级66| 狠狠色狠狠操| 99视频在线精品免费观看2| 五月丁香婷婷色色色| 亚洲综合色网| 囯产精品久久欠久久久久久九大| 琪琪理论片| www.激情五月天.com| 9久国产精品| 五月丁香六月婷婷在线小说视频| 5五月综合网亚洲| 天天日天天爽夜夜爽| 思思re视频在线| 亚洲无码11| 中字幕视频在线永久在线观看免费| 亚洲色在线观看| 色10月婷婷视频| 操日本99| 色色五月婷| 免费观看的婷婷五月视频在线| 久久久五月天| 久久狠婷婷| 99九九精品| www.日日夜夜.com| 亚洲丁香五月美女| 操一区| 91久久18| 国产国产乱老熟女视频网站97| 人人干人人操人人摸| 伊人五月天男人的天堂在线| 日本丁香久在线| 国产99久久久国产精品免费看 | 可以免费观看的av| 99热这里只有精品1025| 夜夜综合色| 婷婷色五月偷拍| 久操干| www.99色在线| 国产精自产拍久久久久久蜜| 久久草大香蕉| 日本3级片一区2区| 99热无码首页| 婷婷丁香五月天狠狠| 99热精品在线播放| 亚洲综合另类| 婷婷丁香先锋资源网站| 欧美在线ee日韩| 亚洲黄色影视| 婷婷丁香人妻天天爽| 丁五月激情视频免费| 五月丁香六月婷婷a v| 五月丁香六月婷| 我想看国产大学生口爆吞精的视频| 极品少妇XXXX精品少妇偷拍| 精品人妻伦一二三区久| 大香蕉人妻| 可以免费观看的AV| 天天日夜夜曹| 操人妻视频91| 第四色首页| tingtingzonghewang| 美女丁香五月天| 中文字幕永久免费| 色停停香蕉视频| 殴美日韩成人| 六月激情婷婷综合| 九色激情网| 天天综合色99| 91久久| 六月婷婷色色色| 色天五月天在线观看视频| 欧美激情综合色综合| 亚洲AAAA网| 欧美激情xxxXX| 五月天六月丁香| 五月婷婷开心亚洲无| 色性综合| av婷婷丁香 六月| 五月婷俺去也| 这里只有精品,日韩视频| 丁香五月六月久久综合| 亚洲综合色网站| 婷婷五月成人有| 深爱丁香网| 婷婷五月成年人| 99在线精品视频观看免费下载| 91久久久久久久| 久久婷婷影院| 婷婷AV丁香| 婷婷五月天亚洲色| 伍月婷丁香花全集| 婷婷色正月| 天天做夜夜爽| 99ri国产在线| 五月天另类激情在线| 日韩成人综合网| 俺也去色| 亚洲无码猫咪| 五月天婷婷操逼视频| 婷婷精品在线| 99在线观看免费精品视频| 97婷婷丁香五月天激情图片| 午夜婷婷五月天在线| 欧美狠狠地| 五月天婷婷综合免费| 婷婷少妇激情| 久久久久久丁香五月| 亚洲色婷婷视频| 婷婷五月天久久| 五月婷婷深深爱| 狠狠搞狠狠操| 亚洲美女裸体被操在线观看| 天堂色色色| www.色婷婷| 男人综合网| 五月天婷婷色综合| 大香蕉手机视频| 国产婷婷色综合AV蜜臀AV| 97超级碰人人| 五月综合丁香婷婷| 五月天婷婷爱丁香中文字幕| 婷婷综合网| 午夜五月天| 日本欧美成人片AAAA| 丁香色色五月| 久久丁香五月天| 色五月婷婷丁香婷婷| 99久在线精品99re8| 丁香九月婷婷综合| 色www久视频| 日本在线99| 丁香六月婷婷综合色| 丁香五月乱中文字幕| 免费亚洲婷婷中文字幕| 丁香五月婷婷色综合| 超碰久热| 操人精品| 五月 丁香 欧美| EEUSS鲁片一区二区三区| 天天色视频| 五月婷婷之综合激情在线| 久久婷婷热| 激情5月天天天| 翔田千里 50岁 无码| 刘玥av在线| 激情婷婷丁香五月天| VA婷婷亚洲| 99在线精品观看99| 国产亚洲成人综合| 五月深爱婷婷| 任你爽视频| 色五月激情问网站| 天天天天天色| 亚洲操操| 小色小蛇伊人婷婷色香五月| 99色热综合| 五月天激情亚洲| 欧美色色日韩| 久久人妻系列| 任你艹| 国产熟女大叫受不了| 五月丁香六月婷婷在线播放| 丁香五月在线播放| 五月丁香久人妻中文| 99视频一区| 五月丁香色色网| 成人电影AV在线观看| 操逼棍操逼| 超碰在线91| 亚洲成人网在线观看| 深爱激情网综合| 538在线精品| 日韩综合网络男女香蕉a片| 丁香五月天黄色片| 色色亚洲五月天| 亚洲偷| 再綫Av免费視品| 久久婷丁香五月| 久久久久久久五月| 久久99激情丁香婷婷小说网| 欧洲综合一区| 色综合网综合| 色综合久久之分久久| 深爱 五月天| 激情五月婷婷丁香| 9+1视频网址| 午夜丁香综合婷婷| 亚洲成人av在线播放| 丁香五月综合在线视频| www.夜夜爱.com| 日日操人人操| 色狠狠色噜噜AV天堂五区| 久久婷婷成人视频| 99操碰| 狠狠舔| 日日干天天爽| 婷婷五月综合婷婷| 噜噜在线| 婷婷玉月丁香五月在线视频| 中文字幕免费高清电视剧| 免费AV黄在线播放| 99亚洲精品| 亚州激情在线视频| 日本不卡高字幕在线2019| 欧美激情 日韩无码 婷婷 五月天 久久婷婷丁香五月一二三 | 在线综合网| 色婷婷香蕉丁丁网| 丁香五月成人婷婷| 久久多色| 深爱激情五月网| 婷婷六月丁香开心深深爱| 激情小说五月天| 蜜臀av无码久久久久久久久| 色五月激情五月| 九九一综合精品| 日操熟女| 婷婷的色色五月天| 99色综合| 婷婷色情 | av五月天婷婷丁香| 丁香五月停停基地| 五月婷婷六月丁香在线| 就爱操www com| 婷婷五月丁香亚洲| 狠狠五月天| 五月丁香婷草| 综合激情五月丁香| 五月婷婷六月基地| 天堂爱啪啪| 婷婷五月天久久久| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 天天摸天天高潮天天爽| 激情婷婷综合网| 色婷婷久久综合| 国产夫妻操逼内射视频| 九九99偷拍视频| 婷婷色色丁香五月天| 色婷婷基地在线| 国产在线网| 丁香五月欧美| 开心 五月 综合| 碰碰碰97国产| 日韩啪| 婷婷六月婷婷| 99视频在线观看视频| 1024人妻| 色丁香五月综合网| 99热这里都是精品| 婷婷情色开心五月天99| 可以免费观看的av| 青青操绿aaa一区日v| 97涩婷婷婷婷基地| 丁香五月在线| 国产成人99久久亚洲综合精品| 99热国内精品| 高清资源站日A美A欧亚…| 五月开心网| 77799热| 99热久久日本| 激情五月天婷婷| 久久丁香五月| 婷婷六月激情啪啪| 五月丁香好婷婷A片网| 北京熟妇搡BBBB搡BBBB| 激情五月综合网| 婷婷色5月天在线。| 9伊人网| 风流少妇A片一区二区蜜桃| 成功精品影院| 伊人婷婷色激情丁香| 9久久婷婷国产综合精品性色| 精品一二三区久久AAA片| 色婷婷88| 日日夜夜爽| 二人电影免费版在线观看| 伊人五月综合网| 熟妇内谢69XXXXXA片| 性生活视频98791| 五月婷婷自拍视频| 久鲁鲁色网 | 五月丁香婷婷爱激情综合网| 日韩激情网站| 婷婷丁香九色| 色五月激情综合网| 无码人妻激情| 婷婷五月激情六月| 日本不卡五月婷婷丁香| 热久久77777| 99久在线视频| 婷五月天丁香婷五月| 久久久99精品免费观看| 天天搞天天爽| 9 1超碰九色| 99精在线| 婷婷五月天干干| 天天成人综合| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 99热这里只有精品1025| www.五月天婷婷| 婷婷五月天电影在线| 丁香五月天激情五月天激情五月天激情网 | 激情综合网五月婷婷| 99ri精品在线| 无码色| 五月丁香六月欧美综合网站| www,婷婷五月天,com| 操操操av| 5月婷婷视频网站综合| 日韩无码专区| 色欲天天综合| w婷婷五月婷婷w| 成人永久免费视频在线观看| 色天堂操| 六月婷婷最新网址| 超碰京东热av男人的天堂| 婷婷五月综合基地| 婷婷五月激情欧美大胆视频| 久久久天堂国产精品女人| 色一情一乱一乱一区91Av| 激情丁香五月天| 五月丁香啪啪啪| 狠狠爱综合网| 99热这里只有精品青草| 精品久久久人妻| 99热精品中文字幕| 99色色视频| 大香蕉520| 色久综合| 影音先锋自拍网| 玖玖婷婷免费| 成人精品网站在线观看| 国产黄色av| Aα在线免费观看| 色婷婷色综合激情91| 97操碰在线视频| 欧美在线视频免费播放| www.射伊蕉婷婷| 欧美五月婷婷| 五月天丁香六月综合| 色之综合网| 婷婷伊人激情婷婷| 婷婷五月丁香久久| 色婷婷狠狠18| 狠狠爱婷婷| 99热精品在线观看| 蜜桃人妻无码AV天堂三区| 在线观看免费人成视频无码| 在线超碰免费| 丁香五月婷婷天堂大香蕉| 丁香五月情| 7月婷婷六月丁香| 99久热这里有精品| 久久婷婷五月综合啪| 韩国天天婷婷| 亚洲视频五区| 少妇性按摩无码中文A片 | 天天日综合| 狠狠色狠狠鲁| 婷婷性爱| 国产亚洲AV人片在线| 69人人操人人爽| 黄色精品五月婷婷| 婷婷欧美色| 99爱视频免费看| 欧洲色色| 婷婷五月婷婷| 秋霞九九无码| 久久综合丁香| 婷婷色播综合五月| 天天插天天爱| 久9热| 久久久潮喷-久久久九九-成人AV| 色色色婷| 美女主播野战视步页| 五月天com| 亚洲色色色| 伊人超碰在线| 26uuu视频欧美| 久久 视频这里只有精总| 婷婷激情视频| 97超碰婷婷五月天| 日本九九视频| 开心五月婷婷六月丁香| 婷婷激情图片| 思思99热| 2017人人操| 日韩六十路91性交电影| 五月天激情小说| 亚洲经典三级| 久久婷婷内射| 九九热精品视频九九| 99自拍网| 99久久偷拍视频| 色婷婷丁香网| 五月天激情视频| 777影视理论片大全在线观看| 婷婷久久图片| 五月天色综合服务平台| 性天堂久久| 色就色94欧美setu| wWwCom夜操wwW| 五月丁香香蕉| AV成人在线网站| 国产67194| 色五婷婷开心缴| 五月婷婷六月激情| 91婷色| 亚艹艹| 97色在线| 激情婷婷丁香五月天| 伊人五月丁香| 无码人妻少妇色欲AV一区二区| 加勒比日本一区二区三区| 深爱五月天 开心网| 色情婷婷| 国产精品国产| 91wwmm导航| 免费看成人AA片无码视频吃奶| 色五月91| 婷婷五月色情| 狠狠色婷婷色| 另类激情五月| 婷婷激情五月| 成人在线精品| 中文字幕激情综合| 成人 九九九九| 天天草天天日| 亚洲国产精品SUV| 色婷婷XXXXX| 91丨九色丨熟女|新版| 免费成片在线观看| 亚洲最大五月六月丁香婷婷| AA片在线观看视频在线播放| 天天做天天爱天天爽夜夜揉| 中文字幕,综合,91| 另类丁香综合| www.狠狠艹| 99视频综合| www.五月天。com| 中文字幕日产A片在线看| 亚洲国产精品成人免费一区久久久在线观看AAAA | 日本色道视频网站| 91超碰在线播放| 99热丁香五月| 色色99| 婷婷亚洲久久| 色五月AV| 五月丁香色婷基地综合久久| 五月天桃色深爱网| 在线成人av播放| 色婷五月天激情| 色婷婷AV久久| 久久一热| 停停六月 综合| 无人精品在线视频| 久久九九经典| 五月天另类小说| 禁片二区| 99综合视频| 啪啪色区| 97人人看| 五月天啪啪| 亚洲综合九九| 日本va欧美va精品发布视频| 蜜臀AV在线观看| 六月天无码网址| 97久久综合网| 99视频在线精品免费观看2| 日本久久极品| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 色135综合网| 天天天天天天天操| 97操碰免费视频| 五月丁香激情综合久久| 久久免费操| 思思热视频在线观看| 亚洲激情图文小说| 国产精品第一国产精品| 五月婷婷综合潮喷| 99日在线观看视频| AV网站免费在线| 亚洲色色色色色| 51精品国自产在线| 久久激情五月天| 97热九九| 婷婷久久五月天| 天天操天天操综合| 亚洲国产黄色电影| 欧美精品啪啪| 凹凸7777操操操| 亚洲六月综合激情久久下卡| 婷婷久久色| 99日本黄站| 思思久久99热只有频精品66| 五月丁香六月婷婷久久久综合| www.99免费视频| 久久9视频| 欧美va视频不用播放器的va视频网| 操碰色一区就去操| 六月婷婷八月丁香| 99在线精品视频观看免费下载| 高潮毛片又色又爽免费| 色99在线观看| 婷婷色婷婷亚洲成人| AV在线不卡播放| 五月婷婷在线观看黄| 99久久99视频只有精品| 日韩99无码| 五月婷婷狠狠干| 婷婷综合五月激情| 性爱人人网| 久操婷婷| 亚洲婷婷五月天激情| 丁香五月亚洲激情婷婷射| 天天草女人| 久久婷婷网| 色五月视频无码播放| 操久久精| 国产69久久久欧美黑人A片| 四月丁香五月婷婷久久| 激情五月天噢美| 91日综合欧美| 激情五月天丁香| 欧美婷婷综合| 丁香五月亭亭六月综合激情网| 欧美色色日韩| 婷婷五月天在线观看| 欧美这里只有精品| 丁香婷婷人妻综合网| 久热99热| 九久久九精品视频| 亚洲日日日| 精品久久久人妻| 99激| 国产ava| 亚洲综合色激情色五月| 综合激情视频| 26UUU精品一区二区| 五月丁香六月婷婷中合网| 久久久婷婷五月亚洲97号色| 亚洲宗合激情| 天天干天天干天天操| 色婷婷丁香五月天在线观看| 国产va在线视频| 婷婷五月电影| 日噜噜色| 99热在线观看| 老司机伊人| 99热这里只有精品免费| 伊人丁香花综合影院| 99re99在线看| 日本久久精品18| 五月天丁香婷婷久久九| 婷婷六月激情| 五月天狠狠色| www激情com| 五月的丁香六月的婷婷| 久热大香蕉| 天堂色色色| 五月婷婷欧洲| 美国少妇性做爰| 五月婷婷开心网| 国产成人综合在线| 五月天播播中文字幕 | 外国碰视频网站97| 天天日夜夜拍| 国产精品视频久久99| 色色色视频| 五月婷婷六月丁香免费| 久操福利| 99久久视频| 婷婷国产五月天17c| 伊人久久丁香狠狠婷婷综合香蕉 | 大香蕉五月天| 久久久性爱视频| 丁香婷婷五月天在线视频| 亚洲va欧美va国产综合久久久| 三区激情四射av| 五月天无码| 久久婷婷精品| 色色五月丁香婷婷| 97影院一级片| 国产无人区大片| 成人啪啪色婷婷久| 成人一区在线观看| 婷婷丁香五月天操逼| 日操夜操天天操不卡| 深夜婷婷 丁香| 丁香婷婷五月份| 人人爽网| 91日在线视频| 1024欧美看片| 黄色AAAA韩国guochansanji| 九月丁香很很色| 天天碰夜夜操| 97人碰人操| 美女被操一区二区| 97人人妻人人艹| 婷婷.com| 婷婷九九色| 五月天堂六月丁香亚州中文字幕久久| 婷婷五月另类网站| 婷婷综合干| 狠狠久久婷婷| 日本女人久久| 亚洲区视频| 欧美日韩成人在线| 亚洲激情无码久久| 九九九午夜影院成人| 色了色综合| 日韩在线婷婷五月天综合| 五月丁香天堂网| 色五月成人| 日韩九区| 9久久精品| 69精品人人人人人人人人人| 影音先锋五月婷婷| 99热99日天天干| 69综合在线| 六月婷婷av| 色综合久久五月| 丁香五月在线观看综合| 九九久热| 96精品久久久久久久久| 激情五月天婷婷丁香| 激情丁香五月| 亚州成人综合在线| 99啪99| 精品思思久久| 激情www.98com| www.com五月天| 91成人品| 免费视频WWW在线观看网站| 婷婷酒色网| 日韩成人电影在线播放| 97亚洲色 torrent magnet| 伊人在线婷婷草| 五月婷婷香| 欧美色图天堂网| 亚洲欧美在线观看| 99热在线爱| 狠狠操综合| 99色看| 五月丁香啪| 激情99| 九热av| 97香蕉碰碰人妻国产欧美| 色播五月婷婷综合| 丁香五月婷久久| 免费黄色视频网址| 欧美色图片88| 久久精品婷婷五月丁香| 99精品这里只有免费视频| 色色COm| 婷色五月| 91久久久久| 97久久久| 五月天成人在线播放丁香| 人妻AV在线观看| 亚洲网综合在线| 九九婷婷综合| 99热只有精品在线观看| 91丁香五月| 91精品国产综合久久久不卡电影| 91综合在线视频| 日韩一66精品| 国产精品国产| 全部老头和老太XXXXX| 99资源在线视频| 26uuuavcom| 97影院一级片| 五月婷婷av在线| 激情综合网五月婷婷| 久久久精品人妻录| 激情综合五| 97碰碰电影| 婷婷五月天激情小说网站| 久久玖玖99| 桃色五月天| 六月婷婷视频| 五月天性色| 丁香色婷婷| 97久久超级| 五月天激情网址| 99色综合网| AV中文字幕夜夜操b天天摸bb| 99re这里只有精品99| 人人射人人高潮| 99国产精品白浆在线观看免费 | 色综合婷婷| 狠狠狠狠狠狠狠狠| 成人精品视频99在线观看免费| 操97免费超级视频| 色婷婷久久综合丁香五月| 五月天社区| 欧洲综合视频| 夜夜操天天干| 国产精品扒开腿做爽爽爽A片唱戏 亚洲爆乳无码精品AAA片蜜桃 | 日夜夜久久| 性一交一乱一交A片久| 中美日韩成人在线| 久久五月天婷婷| 激情网 久久| 少妇日麻屄| 日本欧美在线| 婷婷色吧| 第四色婷婷丁香五月| 天天日中文| 综合激情开心五月| 中文字幕在线观看视频www| 五月婷婷日本| 五月丁香淫淫婷婷婷| 婷婷五月欧美综合| 热99视频精品| 人人爱人人草| 网色99| 五月婷婷综合视频| ou洲色吧| 五月天色婷婷伊人网| 国产一区二区av免费| va中文资源在线观看| 99视频精品在线| 先锋五月婷婷丁香草草| 噜噜操操| 激情中文在线| 五月天综合久久| 久久久九九九 99| 婷婷瑟瑟五月天| 7777久久亚洲中文字幕| 亚洲第一视频 久久| 色婷婷伊人激情在线观看| 天干干夜夜操| 少妇水多A片太爽了| www.狠狠操.com| 99噜噜噜在线播放| 五月丁香六月婷婷中文版| 99re在线播放| www..com色爱| 思思久久99热只有频精品66| 男人天堂亚洲综合| CHINESE熟女老女人HD视频| 狠狠夜夜五月丁香| 五月激情影院| www.色窝| www.色多多婷| 99热99干| 99精品网址| 狠狠色综合网| 丁香久久综合| 欧美在线干| 中海油常州环保涂料有限公司| 另类激情中文| 五月天色狠狠| 青青草国产亚洲精品久久| 丁香五月激情站| 久久五月婷天天干| 96五月丁香熟女| 成人在线视频男人的天堂4399| 99视频只有精品| 色噜噜狠狠色综合网| 在线另类| 久久人妻爱爱| 万月丁香狠狠爱| 99re8这里只有精品99re8热视频| A1片久久| 亚洲精品国产成人AV在线| 99er这里只有精品| 国产精品久久久久久久久久免费| 日本va视频| 欧美色色日韩| 丁香六月久久| 激情婷婷色小说| 五月婷三级片| 五月花免费视频| 殴美激情综合网| 色五月激情网| 婷婷五月色丁香在线看| 婷婷丁香五月天色色| 亚洲色夜| 99久久久国产大片区| 中文字幕有多少字| 亚洲热热视频| AV在线中文| 国产肥白大熟妇BBBB视频| 天天操电影院色狼性av| 五月停停999| 丁香六月婷婷| 女人天堂 AV| 婷婷欧美综合| 中字幕视频在线永久在线观看免费| 婷婷五月天天aV| 亚洲成人另类| 伊人丁香五月| 婷婷性爱综合| 99热6这里只有精品| 欧美丁香六月激情视频| 91久久九色| 欧美色婷婷| 欧美综合激情五月天| 五月丁香好婷婷A片网| 精品一二三区久久AAA片| 开心五月天激情网站| 91精品久久久久久77777| A片女女女女女女BBBB| 伊人婷婷五月天| 26uuu美女三级视频| 成人免费网站免费看| 伊人色综合网| 亚洲色情网站| 中文精品久久久久人妻不| ou洲色吧| 狠狠色婷婷| 色老久久| 婷婷丁香激情|