免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
久久xxxx| 色情五月天小说| 久久xxxx| 五月天激情婷婷久久| 色婷婷色99国产综合精品| 99国产精品久久久久久久久久久 | 成人五月天。COM| 五月婷婷免费在线视频| 337午夜福利| 五月天综合激情网| 色五月婷婷AV| 在线日本www| 五月天色图| 5月婷婷激情网| 亚洲AV人人操| 欧洲亚洲免费视频9| 久久人妻熟女一区二区| 天天干一干| 久久六月天| 五月丁香婷婷六月天| 激情综合国产| 五月丁香在线观看99| 九九日伊人| 人妻熟妇国产精品| 色综合久久88色综合天天看| 国产精品色| 丁香五月在线视频黑人| 婷婷丁香五月天在线视频| 亚洲国产网站| 激情五月婷婷色色| 人人超碰99| 亚洲乱码精品久久久久..| 激情噜噜噜| 夜夜操夜夜姧| 五月色丁香激情| 丁香五月亚洲激情婷婷射| 国产综合A片| 五月婷婷丁香| 婷婷久久五月| 99热成人| 激情五月丁香五月综合| 在线sebiav精品视频| 六月天婷婷| 综合久久婷婷| 亚洲色婷婷| 99碰碰| 五月激情小说| 色婷婷综合网站| 色五月成人| 日日插日日干| 婷婷综合五月| 天天操天天操天天操天天操天天操| 任你搞网站| 狠狠操天天干| 99久久99久久综合| 性爱视频久久| 五月天久久色| 99久久色| 91色久| 色色色五月婷婷| 欧美久久网| 久狠狠狠| 99操| 九九色婷| 99熟女啪啪视频| 99熟女啪啪视频| www.五月天色色色| 伍月婷丁香婷| 女人天堂 AV| 日日日日操| 欧美啄木乌丝袜人妻系列| 婷婷丁香色五月久久88| 99热新网址| 91偷拍视频| 亚洲成人网站在线观看| 激情内射人妻1区2区3区| 国产日产亚洲系列最新| 精品99在线| 天天色天天射天天日| 97人人超| 5月丁香啪啪啪| 99色免费观看全部| 99综合| 9999久久久久| 色99视| 超碰色色综合| www,五月天激情| 人人爱人人摸人人澡| 成年人最刺激的综合网| 中文字幕日产A片在线看| 性做爰1一7伦| 综合色情网| 另类的婷婷| 婷婷综合网伊人| 天天久综合| 久热一本| 色色色色色色色色色色色色色五月天| 国产精品久久久99视频| 亚洲热视频| 色五月首页| 97搞在线| 色综合色综合色综合高潮| 婷婷五月天成人小说| 亚洲AV网站在线观看| www.激情五月| 九色在线观看91av| 都市激情小说婷婷| 国产美女无遮挡裸体毛片A片| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 久久久久久久人妻| 色域五月婷婷丁香| 激情五月丁香亭亭| 96丁香婷婷九月蜜桃综合久久| 成人毛片在线免费观看| 特级片神马电影| 五月丁香在线| 黄色aa观看aaguochan| 亚洲综合字幕色色| 日本久久人人| 黄久久久| 色色色在线观看| 亚洲国产精品VA在线看黑人| 五月婷六月综合在线观看| 四色AVwww| 国产亚洲99久久精品| 亚洲无码黄色| 国产视频婷婷| 秋霞少妇毛片| 五月天婷婷在线AN| 九九在线这里只有精品视频| 性爱网五月婷婷| 婷婷丁香社区网| 噜噜精品| 色综啪啪啪啪啪啪| 婷婷播5月| 影音先锋男人女人| 激情五月婷婷综合色播小说| 热99.com婷婷| 婷婷五月天堂| 五月激情婷婷国产精品久久久久久| 色婷婷国色天香综合| 婷婷五月天久久久| 色色五月婷婷| 五月天色婷婷综合| 狠狠夜夜五月丁香| 全部老头和老太XXXXX| 久久丁香五月| 九九热精品| www一起操| 99网99热| 丁香婷婷基地| 婷婷丁香成人| 日日爽日日操| 91丁香综合| 狠狠干天天内射| 91精品久久久久久| 久热91| 九九久久腿| 日日舔夜夜操| www.99热精品| 五月亭亭六月天| 狼友视频在线观看18| 9色在线视频| 久9久9久9久9久9久9| 性生活视频98791| 99啪在线| 大香蕉啪啪啪| 色情播放| 婷婷五月天AV在线| 国产亚洲色婷婷久久99精品91| 99热自拍| 五月婷婷伊| 色噜噜婷婷| 国产性爱大片久久| AV五月丁香| 中文字幕在线观看视频www| 在线观看中文字幕| 好好干av| 成人毛片在线免费观看| 五月丁香色综合| 九九这里只这里只有精品| 久操婷婷| 五月天激情图片| 亚洲精品在线视频| 国产婷婷色综合AV蜜臀AV | 综合色五月天| 熟女激情网| 色色a| 激情六月五月婷婷综合网| 女人被躁到高潮嗷嗷叫小| 大陆肏屄视频| 草综合网| 一区三区视频有限公司| 国产午夜精品一区二区三区嫩草| 开心婷婷丁香五月| 天天草天天爱| 九九99精品视频| 99在线免费视频| 五月天婷婷开心| 久久九九99.www| 女人被男人吃奶到高潮| 亚洲十月婷婷综合| 狠狠操综合| 激情又色又爽又黄的A片| 天堂草在线看www| 欧美超碰人人| 666555。COm毛片| 激情五月婷婷综合| 五月天婷婷色播在线网| 久9热| 黄色av网站在线免费播放| 色婷婷先锋| 成人精品一区二区三区四区五区| 狠狠色大香蕉| 丁香五月停停av| 色五月婷婷久久| 天天摸日日舔狠狠添婷婷婷| WWW,激情五月天,COM| 极品精品一区二区三区在线| 激情内射p| 99久久喉9| 看久久性爱99视频| 久草热久草在线视频| 荡乳尤物3HP1V5| 五月大香蕉| 国产欧美性成人精品午夜| 这里只有精品网| 五月天激情四射| 五月天丁香婷婷久久九| 色爽干| www.99热在线观看| 婷婷五月六月丁香| AV操操操| 五月婷视屏在线观看| 五月天婷婷色在线视频免费观看| 五月 成人 婷婷| 五月丁香婷婷欧美色图视频五月丁香777电影| 亭亭色网| 日韩成人中文字幕| 色久九| 久色婷婷200| 狠狠操天天操综合| 五月婷婷与六月丁香图片激情| 中文字幕 中文字幕明步| 米奇激情婷婷| 午夜婷婷五月天在线| 亚洲人妻AV| www狠狠com| 先锋影音男人的天堂AV| 九月性爱网| 99噜噜噜在线播放| 激情婷婷五月丁香啪啪啪| 五月综合视频| 99免费在线视频| 99啪啪| 久久久久网站| 五月婷婷无码| 99综合免费视频| 亚洲天天操| 色吧五月婷婷| 亚洲国产精品VA在线看黑人| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 日木狠狠干| 99re热99| 人人爽人人射-美女久久久久久久久久-成人AV| 天天做天天爱天天日| 99热伊人| 婷婷狠狠五月综合| 五月婷婷六月丁香在线视频| 日本色五月| 欧美狠狠色| 五月天综合网| 婷婷丁香18| 丁香五月天堂| 国产人妻777人伦精品HD| 最近中文字幕在线中文视频| 激情五月天。| 日韩在线观看亚洲| 久鲁鲁色网| 国产Va视频| 色婷婷五月天天天做| 激情5月天天天| 五月天激情婷婷小说| 婷婷五月天免费视频在线观看| 伊人久久五月天| 色色色色色网站| 91日视频| 极品人妻VIDEOSSS人妻| 欧美日本97| 手机旧版看人妻1025| 日本美女上人| 天天日夜夜夜操操操操| 操逼巨乳91| 91美女被操| 亚洲成人免费在线| 久久嘟嘟丁香| 五月丁香拍拍激情综合| 五月丁香激情综合网| 久久五月激情| 超碰cap| 综合久久高清| xfplayav在线| 99re思思久久| 色色影院黄大片| 激情AV| 久久五月天黄色五月天色网址| 这里只有精品免费观看网占| 天天操天天曰| 久草嫩草在线观看| 激情六月五月婷婷综合网| 啪到高潮激情丁香五月| 日本天天操| 综合激情九月婷婷,激情综合婷婷中文字| 99碰| 久久亚洲激情五码| 一点色成人网| 国产91视频| 综合色五月天| 久久小视频| 超碰丁香五月| 甈你aaaaa| 综合久久综合久久| 美国不卡视频| 久 久9 9 热 视 频| www.操.com| 青青艹b| 天天在线久久综合| 夜夜撸夜夜骑| 婷婷伊人綜合中文字幕小说| 成人va在线播放| 粉嫩AV久久一区二区三区| 精品亚洲国产成AV人片传媒| 狠狠色噜噜| wwwss在线观看| 色综合香蕉| 国语精品探花| 欧美日韩成卜| 丁香五月天激情小说| 亚洲天堂爱爱| 九艹在线| 综合五月丁香六月婷婷| 婷婷五月六月丁香| 婷婷六月天激情| 成人精品视频99在线观看免费| 午夜爱插插| 亚洲情欲| 99热在线网站| 日日噜噜夜夜狠狠久久丁香六月| AV大片在线观看| 日韩小视频在线99| 色婷婷8| 五月丁香婷婷五月色| 五月激情小说网| 色五月婷婷影院| 综合五月婷婷| 五月天色色婷婷| 色婷婷亚洲婷婷在线观看| 人妻有码乱操| 婷婷五月六月丁香| 五月天丁香婷| 97碰碰人人| 久9无码视频| 五月丁香色综合| 超色欲天天| 久久思思热视频| 久久久天堂国产精品女人| 综合色五月天| tingtingseav| 天天干天天插| 粉嫩av懂色av蜜臀av熟妇| 99热老司机| 182TV亚洲| 99re这里只有| 操人无码| 天天色天天操天天射| 开心五月深爱五月婷| 午夜无码熟熟妇丰满人妻| 婷婷五月天,影院| 久久伊人大香蕉| 安息电影在线观看完整版| 欧美色频| www夜夜操comwww| 色婷婷色综合| 91色在线/日韩| 99精品自拍| 久热免费视频| 久久这里只| 欧美激情伊人| 五月丁香六月激情综合| 五月丁香六月综合激情网| 影音先锋男人av资源站| 九九香蕉网| 久久婷出差欧美色两性综合网| 天天干人人奸97| 婷婷六月丁香五月| 激情性爱五月天| 久久草大香蕉| 丁香成人五月天| 五月天堂婷婷| 五月丁香亭亭激情操逼网| 激情婷婷五月天日本系列| 午夜丁香 婷婷| 日本人妻A片成人免费看片| 色色色综合视频| 91精品刘玥| 精品99在线| 深情六月婷婷综合久久| 久艹伊| 99精色| 99热这里只有精品2024| A在线观看| 亚洲操人| 五月丁香六月婷婷激情网| 激情图片亚洲| 天堂亚洲 在线| 99热精品在线| 99无码视频| 色视频2025| 色五月丁香A欧美com| 九九亚洲视频| 欧美五月丁香在线| h亚洲| 色九月婷婷| 久99热| 淫荡家庭AV| 狠狠色中色| 久久婷婷五月综合色奶水99啪| 亚洲无码成人网| 中文字幕在线人妻| 99精品在线播放| 五月丁香婷婷激情视频| 日韩精品成人在线| ou洲色吧| 国产精品A成V人在线播放| 久久超视频| 色婷五月天亚洲| 天堂久久大香蕉| 欧美成人一区二区三区在线视频| 色欲丁香| 久久免费精彩视频| 色视频五月天| 婷婷成人五月天一区| 亚洲六月婷婷| 久久婷婷婷| 九九热狼人| 亚洲中文乱字字幕在线永久| www.天天干| 九九视频热| 久久婷婷五月天| 性做爰A片免费视频A片直播| 人人操Av| 色噜噜狠狠色综合日日| 成人电影AV在线观看| 丁香五月婷婷国产av| 色婷婷视频| 天天爽天天日| 天天操天天操天天操天天操天天操天天操| 狠狠看狠狠| 婷婷色网站| 久久一级片| 九九婷婷五月天| 思思热在线视频精品| 99色在线视频| 无码激情| 美女激情综合| 久久久久久久97| 激情色色色| 婷婷五月综合激情小说| 五月丁香黄色| 丁香成人视频| 五月天婷综合| 日韩啪| 性色天| www99热| 欧美色色色色色色色| 色五月婷婷、老熟女| 日本片日本片祼观看网站在线看中文版网页在线看 | 99热精品在线在线| 丁香婷婷六月| 久热伊人| 九九热这里| 99色视频在线| 色五月激情五月| 无码日本精品XXXXXXXXX | 天天干电影| 亚洲综合在线视频| 国产视频色色色色色色色| 日本无码专区| 日噜噜色| 亚洲久久日| 成人婷99最新| 天天操夜夜夜夜爽| 国产精品久久久丁香五月八戒视频| 九热视频这里只有精品| 视频色色色色色色| 97碰碰在线观看视频| 日韩亚洲视频| 天天综合色| 婷婷黄色网| 久久婷婷六月综合综合| 久久久久9999| 色五月婷激情| 91人操人人人操人| 精国产品一区二区三区A片| 国产69精品久久久久999小说| 色综色网| 亚洲 视频 导航 一区| www.天天干.com| 青青草蜜臀| 婷婷色情五月| 五月婷婷激情五月| 黄色激情网站在线观看| 日韩综合久久| 婷婷五月丁香网| 色婷婷国产精品综合在线观看| 中文无码婷婷| 久久久中文| 亚洲国产网站| 五月天 综合 在线| 91碰视频| 久久久久久婷| 五月天国产成人| 伊人久久五月天综合| www.日韩国产| 日本4399天堂中出| 欧亚洲在线高清视频| 婷婷五月婷婷五月天| 丁香成人五月天| 成人国产欧美大片一区| 九九人人自拍| 婷婷五月天亚洲丁香| 大香蕉啪啪啪| 久久婷婷的综合色丁香五月| 国产日韩欧美性生活| 日本欧美国产| 人人摸人人干| 大香蕉久久久| 欧州色色| 日本操B视频在线观看| 五月丁香六月婷婷成人| 99久久九九| 国产欧美日韩综合精品一区二区| 99久久97久久欧美综合网| 婷婷成人综合五月| www.婷婷| 色三级色三级| 成人 视频免费观看网站| 日曰躁夜夜躁2026| 色色99色色| 九九色色网| 亚洲狠狠爱婷婷| 久久99免费视屏| 久久九九@| 九九伦子片| site:xiongshengzz.com| 婷婷深爱五月丁香| 国产麻豆视频| 五月天中文字幕在线婷婷| 国产99久久久| 亚洲无码激情| 五月丁香中文字幕| 欧美A片在线视频免费观看| 日本熟女视频一区二区| 五月婷精品| 日本在线视频看se99| 台湾佬天天日丁香婷婷五月天 | www.黄色片-久久成人国产精品在线播放-999AV| 裸睡玩奶头(高H)| 影视av久久久噜噜噜噜噜三级| 99热这里只有精品23| 五月婷婷啪啪| 天天色综合天天| 五月婷婷狠狠干| 伦99热| 五月天婷婷丁香| 五月丁香婷婷激情爱爱| 五月天激情电影| 99在线资源视频| 天天模,夜夜模夜夜爽| 大地9中文在线观看免费高清| 婷婷五月天成人在线视频| 婷婷色五月开心五月| 97婷婷久久丁香| 日日夜夜天天爽| AV在线不卡播放| 夜夜夜夜做天天天做无码视频| 婷婷俺去也| 天天日天天做天天舔| 91狠狠综合久久久| 毛片网站谁有| 精品久久久久成人码免费动漫| 二人电影免费版在线观看| 五月婷婷综合网| 99热精品少| 色噜噜狠狠色综无码久久合欧美| 97黑人精品区| 色婷婷综合网| 色噜综| 五月色婷丁香| 玖玖热视频| 丁香六月狠狠干| 91视频精品99| 九九九精品视频免费观看| 色五月婷婷综合| 日韩免费乱轮网站| 变态 另类 在线 | 人草人人| 亚洲AV中文在线| 成年人丁香五月| 五月天亚洲最大成人| 亚洲无AV在线中文字幕| 九九精品视频在线观看| 9操在线| 亚洲国产精品二二三三区| 大香蕉院线| 九九精品婷| 91操人视频| 人妻videos人妻高清| 日本wwww在线| 六月婷婷开心| 国产资源91在线| 欧美日韩成人免费在线| 国产精品人成A片一区二区| 婷婷五月丁香六月天亚洲综合| 玖玖综合玖玖| 91久久99久久91熟女精品| 国产成人AV人人爽人人澡Va| 狠狠ri| 影音先锋91| 五月丁香色婷婷伊人| av婷婷丁香| 五月天激情四射| 成 久久| 97干在线播放| 五月天sesese| 99热伊人| 天天摸天天高潮天天爽| 99热大香蕉| 97 天堂| 激情久久四色| 婷婷五月色天| 色婷婷五月天视频网站| 强奸幻女毛片| 天天射天天射一道本日本社区 | www.91操| 日日爽日日爽| 久久6这里只有精品| 色级婷婷| 九九99久久| 五月激情小说| 五月婷婷丁香在线视频| 色婷婷XXXXX| 久久资源综合| 疯狂做受XXXX高潮A片动画| 久久色亭亭五月天| 六月色国内综合| 天干天天干天天天天天| 日韩综合久| 婷婷五月激情天| 丁香婷婷人妻综合网| 91成人看片| 色婷婷文字幕| 久久月天堂| 丁香六月综合激情| 99热免费精品| 婷婷五月天六月丁香| 婷婷六月花| 亚洲综合干| 五月亭亭六月色| www.久久爱.com| 亚洲综合五月天婷婷丁香| 九九综合精品| 亚洲综合五月天| 综合在线色婷婷| 这里只有精品9| 99精品视频免费观看,| AV大香蕉| 五月丁香啪啪啪综合网| 亚洲婷婷丁香五月| 久久33视频| 内射 无码 伊人| 成人做爰黄A片免费看直播室男男| 久久亚洲激情五码| 午夜大香蕉| 欧洲亚洲免费视频9| 少妇搡BBBB搡BBB搡毛茸茸 | 97色色视频| 婷婷色五月天在线观看| 自拍盗摄 另类| www激情五月天| 五月伊人综合| 婷婷色五月天第7色| 婷婷五月天美女| 久久永久网址| 思思久久精品视频| 丁香五月无码| 直接看的AV| 高清无码入口| 97干97色| 日本色婷婷| 日韩中文字幕| 伊人九热| 97人妻碰碰碰碰碰久久久久久| 99视频综合网| 丁乡久久| 超碰人人色| 亚洲色欲欧美一区二区三区| 亚洲AV无码久久精品色欲| 岛国av网| 99热最新| 超碰成人在线观看| 欧美私人家庭影院| www日本熟妇99在线视频| 偷拍丁香九月激情| 综合久久综合五月天婷婷| www.com.色色| sS丁香五月婷婷| 五月丁香天天| 丁香久久五月婷综合| 99热婷婷| 丝袜熟女一区二区三区| 色老久久| 久久这里只有精品07| A A色色| 日本狠狠色| 人妻少妇色综合| 超级久久久| 婷婷激情伍月网| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 日本色色网站| 婷婷色在线| 91av视频| 9久久精品| 丁香婷婷六月激情| 玖玖五月丁香| 91久操| 丁香六月青青草| 那里有AV网址| 狠狠狠狠狠操| 丁香六月色婷婷| 九月丁香很很色| 日韩影院三级| tingtingzonghewang| 99热国产免费| 国产精品久久久久久亚洲毛片| 无码一区二区三区四区五区91c| 国产操碰| 五月花综合视频| 午夜少妇在线观看视频| 婷婷色五月激情强奸四射| WWW.开心五月天.COM| 超碰超碰在线| 日韩久久日| 青草性爱视频| 国产9色在线/日韩| 日本一级大片| 色婷婷丁香中文在线播放| 四色五月婷婷| 99久操| 97偷拍对白视频| 66精品国产成人| 日本高清综合网五月丁香| 精品一二三区久久AAA片| 另类婷婷五月天啪帕帕| 天天艹天天综合网| 五月丁香激情综合久久| 久久婷婷五月丁香蜜桃网| 五月天啪啪| 99re热在线视频观看| 狠狠久久婷五月综合色| 99er国产| 五月天桃色深爱网| 色99网| 成年人最刺激的综合网| 久久99免费视频| 天天综合天天玩夜夜玩天天玩夜夜玩| 天天天操天天天日| 久久久久九九九九视屏小说88| www.激情五月天.com| 色五月天在线观看| 97色天堂| 亚洲AV人人操| 熟女网站久久| 色色色在线观看| 欧在线一区| 久久精彩视频99| 久热久| 可以免费观看的av网址| 九九人人操| 超碰9| 综合色播| 熟妇国产| 天天爽天天爽视频| 日韩三级视频一区二区| 五月激情婷婷开心| 五月婷综合| 99在线精品免费视频| 婷婷丁香黄色| 色停停五月,在线观看| 久久大香蕉伊人| 六月婷婷五月天| 亚洲韩国日产综合AV| 999热成人在线综合网| 3p九色在线| 五月丁香做爱视频| 久久香视频| 91狠狠色色丁香婷婷综合久久| 在线资源av-超碰中文在线-成人AV| 91热视频色网站| 色琪琪一综合久久激情五月视频| 激情五月天丁香| 99在线精品视频免费| 日日夜夜狠狠| 色婷婷香蕉丁丁网| 精品九九婷婷| 丁香综合婷婷五月天| 色久女| 九热视频| 色婷婷色久综| 九月丁香婷婷网| 草五月| 婷婷丁香熟妇综合网| 亚洲成av人影院| 色性日本| 日本97在线视频| 久久五月视频| 五婷婷综合网| 国庆精品久久| 国产一二区爆乳_1国产日韩一区二区三-成人AV| 丁香五月第九色| 九九精品丁香花| 丁香五月社区| 99综合网| 婷婷在线五月综合| 99热| 久久视屏这里只有久久| 亚洲中字AV电影在线网站| 五月天婷婷激情小说电影| 久久98热re| 国产精品色| 久婷婷久草| 久热精品在看| www.色婷婷.com| 欧美综合五月丁香五月天| 超色欲天天| 青草青草视频2免费观看| 日日夜夜狠狠操| 欧洲亚洲免费视频区| 亚洲最大视频网站| 婷婷五月天成人网| 久久久久久人妻| 日韩欧美四五区| 色综合av超碰| 亚洲网在线观看| 久久怡红院| 五月综合婷婷久久在线| 亚洲精品网址| 五月香婷婷| 婷婷色情六月| 精品一二三区视频立| 爆乳熟女一区二区三区爆乳| 性无码专区无码| 丁香六月啪| 欧美成人性爱网| 玖玖精品视频99| 深夜男女福利刺激影院一区| 久久大香免费| 九九九九精品精| 人人操五月天| 天天插天天爱| 色五月婷婷色五月| 婷婷5月天av| 伊人婷婷青青cao| 色婷婷色五月综合| 丁香婷婷五月色综合| 亚洲日日操| 婷婷射图| 色色色色色网站| 99这里只有精品在线观看| 久热精彩视频98| 熟女强人妻一区二区三区四区无| 婷婷中文字幕| 国产性爱一级| 深爱激清网| 天天日天天做天天操| 天天做综合| 欧美三级欧美一级| 五月激情婷婷国产精品久久久久久| 99精品国产乱码久久久人妻| 婷婷五月天伊人网| 九色PORNY自拍成人精彩视频| 婷婷激情五月色综合| 精品一区二区三区木瓜| 久久婷婷五月综合97色一本| 99亚洲精品视频在线观看| www.综合久久.com| 婷婷丁香五月天影院| 丁香五月婷婷欧美成人色图| 99热超| 色 噜噜 九月 婷婷| 婷婷五月丁香综合瑟瑟| 色婷婷很很丝袜| 色五月婷婷网| 亚洲激情综合| 五月婷婷激情网| 五月天激情小说| 好激情在线综合网| 俺去啦综合网| 五月丁香六月婷婷激情视频在线观看免费| 99热色在线精品| 激情五月色播五月| 色七七色九九| 伊人网大香| 激情床戏| 色99视频| 少妇人妻偷人精品无码视频新浪| 无码人妻AV久久久一区二区三区| 蜜桃人妻无码AV天堂三区 | 99九九久久| 婷婷色色五月天| 亚洲成人网站在线观看| 亚洲天堂久久| 久久小说网| 玖玖爱伊人网| 色婷婷色综合| 91在线操| 一逼色综合| 色狠狠五月天| 久色成人| 狠狠插狠狠操| 殴美激情综合网| 婷婷九月色| 亚洲天堂婷婷丁香| 99re热在线视频观看| 爱久综合| 婷婷四色五月| 天天干夜晚夜操| 天天操人人干| 色五月亚洲| 五月激情久久| 综合久久影院| 日本美女天天日天天爽| 99在线观看视频精品| 99re这里有精品手机在线| 日本色五月婷婷| 成人av免费观看| 久久视频在线视频| 中文字幕av网站| 婷婷久久综合久| 五月丁色AV| 99热这里只有精品18| 九九色色网| 欧美成人一区二区三区在线视频 | www.久久五月天.com| 夜夜骑夜夜撸| 久久性爱视频网站| 99热精品中文字幕| 射婷婷中文字幕| 五月婷婷激情久久| 亚洲亚洲激情| 六月丁香久久| 色狠狠色噜噜AV天堂五区| 五月婷视频在线观看| 日日夜夜狠狠婷婷色| 激情五月天激情综合网| 乱码操操| 五月丁香色欲| 丁香五月婷婷婷婷欧美综合| 久久538| 99精品在线播放| 亚洲免费观看高清完整版AV线| 五月综合激情久久| 久久婷婷六月综合综合| 丁香五月婷婷啪啪| 婷婷欧美综合| 精品九九视频| 天天搞天天爽| 99久久精彩视频| 婷婷五月天,影院| 香蕉国产2013| 91九九九色在| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 久9热| CAoub青青超碰| 中文字幕,综合,91| 狠狠干综合网| 激情综合丁香六| 婷婷激情小说网| 五月天操逼网| 99人人爽| www.久久66| 国产激情在线| 色射7856五月天激情四射| 色天天久婷婷| 1024人妻| 99精品人人| 婷婷五月天激情综合深爱激情| 婷婷成人视频| 99在线热| 激情深爱综合网| 五月天激情国产综合婷婷婷| 成人免费视频一区| 五月色丁香激情| 99操视频| 丁香五月婷婷欧美成人色图| 丁香五月网| 国产精品久久久爽爽爽麻豆色哟哟| 成人看片网站| 综激情网| 五月婷婷六月丁香玖玖玫瑰91| 99精品久久久久久久婷婷久久| 亚洲精品成人| 97碰在线视频| 九九久久五月天| 激情婷婷在线中文字幕| 五月丁香六月婷婷欧美综合| 98热精品| 婷婷五月激情视频在线| 色五月色综合| 婷婷十月丁香| 综合久久五| 五月天,激情四射,婷婷频道| 97人人干视频| 九九热视| 久草热8精品视频在线观看| 天天综合久久| 婷婷丁香社区| 国产日日夜夜操| 天天色中文字幕女优AV| 五月婷婷欲色| 99热人人操人人操| 日本五月天网站| 天天se在线视频| Av九九| 九九激情综合| 性做久久久久久久免费看| 99热这里只有精品亚洲| 风流少妇A片一区二区蜜桃| 激情网站五月| 一起草av| 亚洲成人va| 久久亭亭电影| 99热成人| 色色五月丁香婷婷| 丁香六月婷婷久久综合| 婷婷五月丁香六月伊人网| 成人中文网| 婷婷五月精品中文字幕| 丁香五月ⅤA久久久| 97五月天| 变态另类9| 老师的粉嫩小又紧水又多A片视频| 五月婷婷和六月| 绿色小导航AV| 六月99天天婷婷激情综合| 亚洲性受XXXX五月丁香| 五月婷婷亚洲天堂97色婷婷| 深爱激清网| 国产亚洲99久久精品| 五月天激情国产综合婷婷婷| 成人羞羞啪啪 全 视频| 久久精品A片777777| 天天色激情| 成片免费观看视频大全| 欧美槡BBBB槡BBB少妇| 天天婷婷| 丁香六月色婷婷欧美| 丁香五月婷婷啪啪视频| 超碰爱爱爱| 狠狠狠婷婷五月综合| www.91av.com| 五月天婷婷基地综合网| 日韩无码一区二区三区四区| 日韩99无码| 九九热10| 日韩六六久久电影| 五月天伊人久久| 欧美丁香婷婷五月| 婷婷五月色丁香在线看| 六月婷婷七月丁香| 色五月,com| 99久久精品国产色欲| 99re久热只有精品6在线直播| 日韩精品无码AV| 亚洲国产99| 亚洲第一综合| 婷婷97狠狠干| 久xxxx| 七月丁香五月婷婷在线| 九九热99免费视频| 99日这里只有精品| 五月天色播网| 五月丁香综合影院| 7777国产盗摄农村女人| 国产激情视频在线观看| 丁香六月欧美| 色色色色色色色综合| 丁香香蕉婷婷| 日本在线播放97| 四色99久久| 丁香五月激情婷婷婷婷在线观看| 99综合婷婷五月| 曰本aaaaaa丈片| 狠狠草网| 俺也去在线视频| 99久久精| 性爱七区| 操逼视频网址| 五月天婷婷久久视频| 国产精品美女| 青青草原福利在线| 久青青久| 成人在线视频网| av激情在线| 色婷婷六月| 丁香五月婷婷五月| 丁香五月天啪啪| 精品色色网| 99er这里只有精品| 久色五月天| 97爱综合| 国产91在线视频| 国产熟妇的荡欲午夜视频| www.色五月| 丁香五月婷婷啪啪啪| 色色性爱视频| 丁香五月六月婷婷殴美综合| 丁香五月综合福利视频导航| 久热婷婷| 五月婷婷www| 女同在线9| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 六月婷婷综合| 久久久婷| 五月丁香无码| 99色| 婷婷五月大香蕉| 狠狠穞A片一區二區三區| 五月播播| 这里只有精品视频免费在线观看| 丁香婷婷色五月合集| 久草五月天电影网| 五月婷婷在线短视频| 丁香激情久久| 色视频2025| 丁香婷婷激情综合五月激情| 黄网在线免费观看| 激情五月综合| 久久天堂婷婷五月| 激情婷婷综合网| 色九月欧美| 婷婷九月综合| 色五月天天在线观看资源站| 人人干天天操五月丁香| 开心四月婷婷在线色播播| 另类小说婷婷色| 欧美黄色AA片哗啦啦啦| 亚洲婷婷免费| 亚洲婷婷91丁香| 人人操五月天| 天天肏高清在线| 久久这里都是精品| 中字幕视频在线永久在线观看免费 | 玖玖色综合色| 久久9热综合| 久人操| 亚洲不卡| 婷婷激情鹿城五月天| 这里只有精品在线免费视频| 亚洲婷婷五月天激情| 欧美久久网| 91啪啪视频| 五月激情天| 综合精品啪啪| 超碰com| 色色色综合视频| 婷婷日日夜夜| 97丁香五月| 久久a热| 99在线资源视频| 色婷婷四色| 婷婷丁香六月| 狠色狠色综合久久| 婷婷射丁香| 操久久网| 激情五月婷婷视频| 超碰网站在线观看| 五月婷婷啪啪| 丁香五月中文字幕久色| 九九无码| 91啪啪| av激情在线| 操逼123网| 欧美狠狠色| 亚洲国产精品VA在线看黑人| 亚洲在线视频321| 亚洲小视频免费观看| 丁香六月婷婷综合欧美| 9l视频自拍9l九色成人| 色五月亚洲| 99性视频| 欧美黄色AA片哗啦啦啦| 天天做天天爱天天高潮| 婷婷五月天色色| 日91高清无玛| 精品九九视频| 色色色五月婷| 五月天婷婷丁香成人网| 99小视频| 99re视频精品| 五月婷婷综合网| 色欲九区| 99久久综合精品五月天| 久久久性爱视频| 玖玖综合色区在线观看| 婷婷亚洲影院| 激情婷婷五月天日本系列| 久热大香蕉| 婷婷国产欧美97| 日日干夜夜撸夜夜骑| 九九香蕉网| 嫩草哈哈操| 午夜不卡成人一区二区| 五月婷精品| 大香蕉在线99热| 婷婷五月天无码视频| 国产精品美女| 色99超碰| 26uuu亚洲欧美另类| 日本婷婷在线| 91狼友视频在线观看| 午夜九九电影| 久久这里只精品| 五月婷婷综合社区| 亚洲激情综合免费| 97一区二区| 极品 少妇 内射| 人妻22p| 综合久久综合五月天婷婷| 狠狠色综合777| 色人久久| 影音先锋色婷婷| 激情五月婷黄版| 成人午夜天| 色欲人妻综合aaaaaaaa网| 久久伊人婷婷| 九九色院| 婷婷播5月| 超碰人人操人人9| 五月婷婷六月基地| 色婷插| 五月丁综合在线观看| 亚洲精品V天堂中文字幕| 色五月天.con| 色五月激情网| 国产亚洲av片| 天天综合网网欲色| 91无码色色| 丁香六月色情| 亚洲成人网站在线观看| 久久黄A片| 国产午夜一区二区三区| 国产日韩av片| 无码动漫av| 五月丁香精品| 婷婷成人视频|