免费国产精品自在自线-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
返回資訊列表
办公室少妇激情呻吟A片在线观看| 色色色色网| 丁香综合伊人| 曰本aaaaaa丈片| 99久久五月婷婷| 丁香五月婷婷啪啪| 日韩五月婷婷| 国产激情一区| 成人 在线观看国产| 99热这里只有精品98| 91超碰人人操| 丁香五月婷婷av| 天天天天天操| 婷婷六月中文字幕| 丁香婷婷免费| 九九sese| 色五月在线| 久久这里只有精品热在99| 色狠狠婷婷| 伊人玖玖婷婷| 五月开心久久| 97se视频在线| www.激情五月| 日本不卡五月婷婷丁香| 啪啪色区| 激情五月天福利| 欧美日朝成人| 九九色色网| 国产操B视频| 婷婷久草| 欧美操人| 五月丁香啪啪啪| 99热思思| 婷婷 丁香 精品| 思思热性操| 久9热视频| 国精产品一区一区三区免费视频 | 丁香五月婷婷大香蕉| 99热99热在线| 99视频只有这里精品| 色婷婷yy久| 超碰人人操在线| 婷婷色丁香六月| 国产VA播放| www.久久爱.com| 亚洲无码性爱| 色偷偷人人| 色一色综合| 激情五月天综合网| 在线观看免费观看在线9久| 亭亭五月天成人| 欧美99热| www,婷婷五月天,com| sewuyuetingtingiii| 久99久精品| 五月丁香人妻| 97视频91| 精品人妻一区| 丁香婷婷九月在线| 免费91久久精品| 99热66| 夜夜撸夜夜骑| 少妇搡BBBB搡BBB搡毛茸茸 | 天天日日综合| 99啪啪网| 色欲av伊人久久大香线蕉影院| 秋霞午夜理论| 婷婷婷久久| 色婷婷视频| 五月天天天色| 激情综合视频| 欧美激情伊人| 五月天激情综合在线| av亚洲国产小电影| 大香人妻| 久99久在线| 五月丁香自拍| 欧洲亚洲免费视频9| www九九免费视频| 99在线精品免费视频| 婷婷日日夜夜| 午夜色婷婷| 婷婷五月综激情| 思思99久久| 日本一级一片免费视频| 色99在线视频| 色色色图| www99精品亚| 毛片蕉地一二| 久久久久久久丁香五月天婷婷| 婷婷97色| 九色婷婷| 丁香 婷婷 亚洲 熟女| 色婷婷导航| 色欲Av五月天| 天天干天天操天天射| 婷婷丁香五月天在线| 欧美日本综合网| 五月天另类综合网| 狠狠爱五月婷婷| 51XX午夜影福利| 深爱五月婷婷| 97色婷婷在线观看| 操逼123网| 韩国三级五月天婷婷。| 丁香九月婷婷色| 噜噜狠狠色| 久久久久这里只有精品| 久久99婷婷| 色情五月婷婷| 黄急一级视频| 99色色热热| 99热99这里有免费的精品| 婷婷五月天综合网| 亚洲天码视频www蛋播视频| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 99综合色色色| 色婷婷黄色网络| 婷婷五月色影视先锋| 欧日韩AV| 91超级碰| 精品99在线| 天天干天天色天天干| 丁香五月婷婷丫| 爱操天堂| 激情网 五月天| 五月天六月色| 日韩aⅴ视频| 金桔一区二区ab地址| 色99热| 五月婷婷激情四季| 五月色婷婷中文字幕| 99re8在这里只有精品| 色婷婷五月天偷拍| 婷婷色五天| 成片免费观看视频大全| 亚洲av成人在线| 熟女人妻一区二区三区免费看| 色婷婷丁香五月天| 性日本激情| 五月丁香六月婷婷综合| 色综合色五月| 久久人人九九| 婷婷久久五月天丁香| 9有码中文| 沈娜娜av| 色情五月停停丁香| 丁香六月亚洲| 色五月六月| www.99热| 99热激情| 婷久久高清| 狠狠做五月| 免费看欧美成人A片无码| 激情五月,激情综合网| 五月性色| 99热色婷婷| 天天爽曰日爽| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 丁香九月激情| 午夜 外网 精品 在线| 五月丁香六月婷婷综合网| 99r这里| 日日夜夜干| 日本三级大片| 九九热精品| 久热九九| www.夜夜操| 一级黄色影片| 婷婷亚洲色| 第四色色六月色综合| 日韩综合大黄| 色婷婷综合在线| 亚洲天天综合| 丁香婷色| 91操操| 99精品热| 开心五激情网| 久久ri精品视频| 伊人狠狠干| Blackedraw视频一区二区| 五月天丁香看婷婷| 日韩狠狠色| 偷偷操99| 大学生高潮无套内谢视频| 超碰A V在线| 五月天六月婷婷电影| 丁香六月激情综合| 91啪级电影| 国产SUV精品一区二区6| 超碰在线人妻| 欧美日本免费一道免费视频| 久久丁香五月婷婷激情综合网| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 五月天成人在线| 久久人妻少妇嫩草AV| 99久久久久久| 女人被躁到高潮嗷嗷叫小| 色情婷婷。| 91精品国产91久久久久青草| 色欧美影院| www.五月婷婷| 婷婷五月丁香六月天亚洲综合| 色综合99| 欧美婷婷六月丁香综合色连续高潮抽搐| 五月婷婷无码| 婷婷五月天网| 怡红院 久久| XX色综合| 九九热在线精品视频| 五月婷婷六月丁香首页| 91玖玖| 人人亚洲| 性爱五月丁香| 玖玖婷婷色欲| 综合色色网| 丁香婷婷色五月| 超碰在线人妻| 婷婷五月六月丁香| 做爰丰满少妇1313| 中文字幕在线资源| 五月婷六月| 国产成人网| 色欲AVV| 国产精品美女| 深爱五月日韩| 激情五月丁香色婷婷| 亚洲九九视频| 久久婷婷久久| 色噜噜狠狠插综合| 色婷婷色五月丁香| 91精品久久久久久久| 激情久久丁香| 九九精品视频在线观看| VA色婷婷| 色综合狠狠色| 9色免费网| 610018岁成人视频| 五月天社区| 狠狠爱五月婷婷| 色婷婷五月网| 人人天堂操| 激情九月婷婷| 黄网免费看| 成人在线免费网址| 色五月色开心开心五月| www.91九色| 五月成人网天天| site:hcxsz888.com| 午夜性做爰电影| 五月丁香性爱| 99这里有精品视频| 狠狠爱综合| 婷婷色五月丁香六月欧美啪| 亭亭色色五月天| 久久91久久精品久久| 色婷婷小说| 五月婷婷激情四季| 久99热在线观看| 天天色凹凸| 亚洲精品一区中文字幕乱码| 丁香五月伊人| 人人草人人舔| 五月婷婷激情| 丁香六月婷婷久久综合| 天天色域综合网| 成人欧美一区二区三区在线观看| 中文字幕无码成人电影| 超碰v| 亚洲人人操| 91啪啪视频| 久久精品五月天| 婷婷五月天小说| 亚洲色99| 五月天色色网站| 伊人网碰碰| 狠狠人人婷婷| 99自拍视频网站| 9久热免费视频99| 99精品视频免费观看| 六月丁香成人| 激情激情激情网| 国产精品色色666| 婷婷五月色花丁香社区| 激情视频91| 丁香久久综合| 六月丁香婷婷亚洲中文玖玖| 操操啪| 五月丁香六月综合情在线观看 | 色婷婷久久| 婷婷五月,偷窥偷拍网| 色色影院aaaav| 天天草婷婷五月| 五月天激情小说电影| 丁香五月天亚洲综合| 久久人人妻| 国产精品久久久久久久久久| 99精品久久| 99日韩| 精品影院| 久碰综合| 狠狠草婷婷| 俺去啦综合网| 狠狠干狠狠色| 91男同视频| 欧美日韩国产一二区| 中文字幕在线播放视频| 婷婷五月天网址| 99免费| 99色在线视频| 97热超碰| 青青草深爱激情网| 亚洲激情婷婷| 亚洲AV成人精品网站在线播放| 俺去也五月天| 1024在线观看免费视频| 五月色婷丁香| 欧美成人热| 九九热视频思思| 亚洲成人AV在线播放| 久久久久人妻精选| 日本婷婷| 六月婷欧美| 久er7久热| 丰满熟女人妻一区二区三| xx综合网| 色婷婷亚洲| 午夜精品久久久久久久爽| 综合久久99| 色欲AVV| 色琪琪一综合久久激情五月视频| www999日韩精品| jiqingtaose五月天| 亚洲综合久| 亚州日本欧州韩美高青高潮一| 色小说婷婷五月天天天| 99思思热只有在这里看| 婷婷社区五月天| 天天综合色| www.91AV.COM| www.色五月天.com| 欧美交换配乱吟粗大25P| 久久久97| 婷婷99狠狠| 逼里香不卡| 婷婷五月天影院| 99热久97| 亚洲激情五月天| 国自产拍偷拍精品啪啪一区二区| 狠狠干五月| 亚洲精品亚洲人成人网| 五月丁香 久久久| 91久久五月天| 草榴视频网| 毛片新网地| 九九色综合| 九九99香蕉在线视频播放| 中文精品在| ji'qi'luan'ren'lun| 69色婷婷| 婷婷中文字幕在线| 五月婷婷啪啪综合网| 色色色婷婷五月天| 99九九精品| 婷婷操久久| 九九超碰人人| 九九99久久| www.99色在线| 99热无码| 五月天久久激情| www.成人婷婷综合| 丁香久久九九99| 欧美成人性爱网| 91碰免费视频| 色五月涩涩婷婷| 激情网色五月| 激情第四色| 天天综合 99久久婷婷| 激情丁香五月天综合| 国产激情综合五月| 五月激情综合网| 天堂久久性| 婷婷综合视频| 丁香五月天导航| 日韩九九| 蜜臀九九九九| 色婷婷啪啪| 久久久这里有精品| 久久婷婷内射| 五月婷婷色五月| 色之综合网| 专区无日本视频高清8| 大香蕉 伊人夜| 婷婷在线视频| 91久久99久久91熟女精品| 激情婷婷丁香色五月| 日本色色色| www,8050,午夜三级| 五月天成人在线视频网站| 国产亚洲成AV人片在线观黄桃| 久久久久激情网| 超碰成人电影| 99热只有国产在线精品| 99精色| 欧美激情综合| 色欲五月婷婷| 综合色图区| 97人人操人人干| 日日操人人操| 婷婷久久五月天丁香| 夜夜夜叫天天天做| 中文久久婷婷| 黄网在线播放| 天天日天天草| 99热精品网| 超碰五月婷婷五月天| 婷婷丁香五另类网站| 91九色精品熟女内射| 日韩美女在线视频19| 色噜噜婷婷| 天久久久久| 五月丁香婷婷欧美| 欧美五月丁香| 五月丁香啪啪拍| 夜夜AVV| 亚洲色综合| 激情网站综合五月天| 久久九九色| 色婷婷五月天天天干天天操天天爽| 九久9精品| 色女伊人| 操逼福利视频| 丁香六月久久| 亚洲一区二区无遮挡A片| 婷婷天天婷婷天天澡| tingtingseav| 久久丁香五月婷婷| 99热这里都是精品| 人人人操97| 99色婷婷视频| 人人性久久| 亚洲黄色网址| www.婷婷六月天| 婷婷丁香人妻天天爽| 影音先锋男士资源网一区| 99这里只有免费的精品| 91在线精品一区二区| 99爱在线视频观看| 激情亚洲色图片丁香综合| A片试看120分钟做受图片| 五月天播播综合| www.久久久久久| 丁香花社区av| 大战熟女丰满人妻AV| 狠狠干激情五月| 九九九九国产| 4399在线观看免费毛片| 九九色影院| 色五月婷婷av| 丁香婷婷色九月| 99在线精品视频免费观看20| 婷婷五月天久久综合88| 另类专区在线观看| 六月婷婷综合| 婷婷午夜| 伊人久久艹| 九九色影院| 亚洲婷婷久久综合| 日韩久久色| 丁香五月在线| 色停停五月,在线观看| 97资源碰碰| 色色九九五月天 | 狠狠干婷婷| 六月丁香狠狠爱| 狠狠干狠狠操狠狠爱| 亚洲视频操| 五月婷婷真爱激情网| 色色色婷婷五月天| 日韩成人综合网| 色玖玖爱| 97亚洲色 torrent magnet| 丁香五月之久操视频| 亚洲激情网| 色香欲综合| 丁香五月婷婷视频| 日本色99| 99久热| 欧美 日韩 人妻 高清 中文| 五月婷婷六月天| 五月婷婷五月| 久热超碰| 伊人综合网站| 江苏少妇性BBB搡BBB爽爽爽| 亚洲激情网| 五月丁香六月婷婷网站| 精品乱码视频| 26uuu美女三级视频| 久婷久婷| 五月婷婷影院| 大波美女VA网站| 99热最新网址| 国产免费一区二区三区三州老师F1F1.CC| 激情综合一| 最新色色五月天| 久久九九热视频| 九月丁香婷婷| 日日噜噜久久婷婷五月天| 日本综合色图| 婷婷久久婷婷| 精品九九在线观看视频| av大香蕉| 欧美英丁香开心快乐六月天网| www.激情五月天。com| 久久性刺激| 婷婷五月天免费小说| 黄色激情久久| 亚洲人人干| 九九色热| 99精品久久| 婷婷久久色五月婷婷久久久| AA片在线观看视频在线播放| 91九色网| 久久综合丁香| 婷婷五月色亚洲| 深爱激情综合| 久草热久草在线视频| 99热首页| 曰本aaaaaa丈片| 激情九月婷婷| 日日操天天操| 99操碰| 五月天电影网| 色综合伊人网| 五月婷综合| 91一起艹| 欧美日韩一区二区三区四区| 北京熟妇搡BBBB搡BBBB| 亚洲精品大片| 婷婷娌伦网| 丁香五月第九色| 俺也高清无码高清视频| 五月婷婷丁香狠狠撸久久| 成人视频在线免费播放| 久久五月激情| 婷婷噜噜| 偷拍九九热| 色婷婷丁香网| www狠狠| 亚洲天堂婷婷| 精品一二三区视频立| 五月婷婷m| 97人人草| 久操人妻| 99男人的天堂| 色色激情五月| 五月婷婷日| 婷婷综合干| 六月丁香激情最新更新| WWW.久久.COM| 97人人操人人爽| 色五月综合资源推荐| 色欲婷婷五月天丁香| 99视频久久| 久久婷婷五月天激情四射| 久久婷五月| 亚洲黄色精品| 97人人爱人人操| 国产在这里只有精品| 色婷婷成人| 美欧日韩国产成人在战| 五月婷婷狠天天色综合| 激情五月天网| 99热狠狠操| 五月草视频| 色婷婷aV四虎| 在线观看中文字幕| 欧美激情久| 激情五月视频在线婷婷| 国产伦亲子伦亲子视频观看| 青青草99热久久精品国| 思思色综合网站| 色婷丨日丨天丨综合久久| 激情内射p| 雪千夏麻豆| wwwwww.色| 99婷婷综合| 久热网在线视频| 激情五月瑟瑟| 99热免费| 丁香五月天无码AV| 久久婷婷五月| 久热a| 亚洲综合五月天婷婷| 超碰在线视屏| 天天操天天曰| 九九九九九九九热| 丁香五月婷婷高清| 在线另类| 五月社区丁香| 9热久久| 色99热| 久久久婷婷| 久久综合99| 九九视频这里有精品| 综合五月婷婷| 丁香五月亚洲无码| 丁香五月成人自拍| 丁香九九九九| 色婷婷五月天天天做| 超碰人人91| www.日本久久videos| 婷婷久久免费| 丁香五月天堂| 亚洲操操| 6080av| 亚洲AV成人在线观看| 久鲁鲁色网| 欧美性猛交 XXXX 乱大交| 婷婷五月激情图片| 中文字幕日本最新乱码视频| 99热在这里只有免费精品| 91操片| 夜夜噜夜夜奇| 91超级碰在线| 日本一級黃色一級片| 亚洲色色图片| 九九人人精品| 中文字幕无线久必| 99热九九热| 97好吊操| 久久6这里只有精品| 国产成人网站在线观看| 超碰日日操| 婷婷97狠狠成人网站| 激情小说婷婷小说| 99久久玖玖| 久久久国产精品黄毛片| 激情六月婷| www.yw尤物| 日韩性爱无码| 国产伦亲子伦亲子视频观看| 婷婷五月18永久免费视频| 丁香六月在线综合| 五月婷婷六月丁香在线视频免费在线观看| 五六月婷婷| 色婷婷久久视屏| 99视频这里有精品| 五月丁香激情综合网| 久久伊人日日夜夜| 狠狠色婷婷在线| 99热一本久道| 七七色综合| 99热精品在线在线| 91九色精品熟女内射| 玖热精品综合视频| 91久久精品无码一区二区三区| 97色97干| 婷婷六月激情| 五月 婷婷 成人| 五月婷伊人| 99热国产精品| 婷婷D区| 久99| 色婷婷五月天激情在线观看| 女同激情久久av久久| 五月天激情丁香| 久久久97| av免费在线网站| 色五月 婷婷, 大香蕉| 99久久性爱| 丁香五月婷婷激情中文| 丁香九九九九| 91热99| 中文字幕欧美久久| 丁香婷婷五月六月久久| 色综合五月天| 亚洲乱码日产精品BD| 99色视频在线| 五月天成人在线播放| 台湾综合丁香五月蜜桃| 五月天婷婷操逼视频| 嫩草AV久久伊人妇女超级A| 亚洲va国产va天堂va综合va| 秋霞黄色一级久久| 丁香桃色综合网| 九九九九九无码| 五月综合亚洲| 日本激情五月天‘| 婷婷狠狠操| 久久这里只有精品8| 欧美激情xxxXX| 天天色天天色天天色天天色天天色天天色| 亚洲avjiujiur91| 久久婷五月综合色| 婷婷五月色網站| 五月天色影院| 大香蕉五月丁香| 99热在线精品观看| 国产精品扒开腿做爽爽爽A片唱戏 亚洲爆乳无码精品AAA片蜜桃 | 日本不卡一区二区三区| 久久亚洲婷婷| 超碰在线人妻| 九九热狼人| 色色五月天 亚洲| 丁香97综合| 碰碰碰97免费精彩视频| 亚洲六月综合激情久久下卡| 婷婷伊人久久| 国产毛片精品一区二区色欲黄A片| 色五月婷婷亚洲| 中文字幕不卡+婷婷五月| 99热99热99热99热| 狠狠99| www夜夜| 婷婷五月综合激情| 免费做A爰片77777| 91色在线 | 日韩| 九九这里只有精品在线视频| 99久久99视频| 精品99这里有| 婷婷六月天激情| www.99在线| 狠狠五月婷婷| 1024手机在线观看看片_日韩精品| 激情av网| 丁香五月 综合| 这里只有久久精99| 五月丁香婷婷色| chaopeng在线人人| 久久久久9999| 亚洲视色| 99久热| 玖玖婷婷精品| www.操逼comm| 日本99视频| 黄色AAAA韩国guochansanji| 操婷婷久久| 丁香五月婷婷婷婷欧美综合| 久久亚洲婷婷| 99热成人在线| 中文字幕网伦射乱中文| 日韩黄色中文字幕| 日韩色色网| 色婷婷精品| 亚洲亚洲人成综合网络| 曰韩五月丁香色婷婷无码| 色婷婷狠狠久久综合五月| 亚洲无码影音| 97在线/亚洲| 天天干天天爽天天操| 五月丁香啪啪综合| 欧美色综合天天久久综合精品| 国产看真人毛片爱做A片| 丁香五月天大香蕉啪啪| 成人视频在线免费播放| 色五月综合激情| 噜噜在线| 婷婷亚州综合| 人人做天天爱| 亚洲综合五月天婷婷丁香| 久久久久9久无码视频| 五月色婷婷夜色| er99免费视频在线| 日韩aaaaa| 天天摸天天肏| 华人在线免费| 国产又爽又猛又粗的视频A片| 色操综合| 六月色色婷婷| 少妇AB又爽又紧无码网站| 中文字幕丰满乱孑伦无码专区 | 日本色婷婷久久99精品91| 五月丁香婷婷六月天| 五月六月婷| 大香伊人久色| 色五月婷激情| 九八Av| 99人这里只有精品| 久热九九| 婷婷色播六月无码| 国产毛片精品一区二区色欲黄A片 国产人妻777人伦精品HD | 婷婷综合精品| 婷婷99狠狠| 91精产一区三区免费观看| 噜噜噜噜噜久| 99九九久久| www.激情五月天。com| 丁香五月中文字幕久色| 色婷婷电影网| 欧美黑人大吊| 色色色99| 丁香五月狠狠综合欧美| 欧美性爱一区| 丁香五月婷婷激情网| 五月丁香色婷婷久久| 五月天激情AAAA| 九九热精品| 丁香六月中文| www.lchjjc.com| 色五月综合婷婷| 麻豆123区| www.99视频| 五夜丁香| 120分钟婬片免费看| 五月婷天堂视频| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 激情婷婷网| 九九这里是免费的视频5| 色综合色香蕉网| 亚洲成人五月| 97色 五月天丁香| 国产偷人妻精品一区| 亚洲黄色网址| 牛牛碰免费| 丁香五月天AV在线 | 狠狠狠狠狠| 婷婷 亚洲图片 丁香| 99综合网| 日日日影院| 偷拍九九五月丁香婷婷| 欧美成人精品一区二区| 婷婷97狠狠成人网站| 色九月婷婷综合| 色五月综合激情| 韩日在线熟女| 黄色激情网站在线观看| 久久香蕉婷婷五月天| 夜夜撸天天操| 五月天色色激情综合| 久久婷五月天| 我爱va亚洲va52| 欧美成人日韩| 99欧美| 停停五月丁香| 9色在线| 九九精品免费视频99| 婷婷五月天777| 欧美久人人| 99热久| 丁香六月情| 高潮毛片遮挡费高一百度| 超碰在线人妻| 色婷婷五月中文字幕在线dvd| 狠狠操狠狠色| 久久伊人五月天| 五月精品免费XXX| 久久永久网址| 99偷拍视频在线日本| 久久人人妻| 婷婷色5月天在线。| 国产精品18久久久| 精品女人九九九| 五月亭亭六月激情| 久热伊人| 97碰 在线视频观看| 亚洲综合五月| 五月天久久www| 国产激情AV| 丁香五月手机视频| 丰满少妇猛烈A片免费看观看| 婷婷丁香五月久久| 日本久久婷婷| 激情婷婷网| 丁香五月在线播放| 操九色| 日日夜夜爽| 久久ER视频com| 久久久久9999| 4399欧美另类视频| 激情五月天.色网| 久久国产色| 久久作爱| 丁香五月婷婷大香蕉| 九九热视频99| www狠狠com| 97人人干视频| 香蕉AV777XXX色综合一区| 婷婷激情五月综合基地| 久久六月综合| 狠狠爱丁香婷| 无人区码一码二码三码医生系列| 综合五月天完整| 人人干天天操五月丁香| 久re热视频| www。五月,com| 农村熟妇高潮精品A片| 久久少妇视频| 五月天激情中文字幕| 99热日| 色五月婷婷影视| 超碰99热在线观看| 色天使久久综合| 99热在线极品极品| 九九XX视频| 色情终和网| 操97在线观看| 久久桃花网色婷婷| 久久免费高| 色爽干| 五月激情综合婷婷| 六月婷婷在线视频| www天天爽| 天天爽夜夜爽夜夜爽精品视频| 亚洲啪啪视频| 久久XX| 大香蕉网站,大香蕉综合| 涩丁香| 1024成人免费看| 碰99在线| 色五月综合97| 婷婷久久影院| 久9视频| 草美女在线观看视频在线播放| 激情九九九九| 激情婷婷在线中文字幕| www99精品在线观看| 五月天婷婷色| 天天日日夜夜| 99热最新国内| 99玖玖人人| 欧日韩成人| 久久99这里只有精品| 99啪在线| 99 热国产在| 梁铮版蜘蛛女在线观看| 日韩 中文 欧美| 丁香婷婷综合精品六月初| 色99www.| 婷婷开心深爱五月天| 玖玖色资源| 精品国产va久久久久| 激情五月天综合网| 日韩成人AV在线播放| 婷婷五月天桃花网| 婷婷狠狠爱| 综合色色婷婷| 99er免费在线观看| 99热国产这里只有精品| 色五月视频,小说| 五月天 婷 欧美亚洲| 婷婷五月婷婷| 91在线日| 欧美熟女视频 色婷婷| 搡BBBB搡BBB搡18| 被男人添B超爽视频| 中文字幕欧美日韩VA免费视频| 99热9999| 丁香色婷婷色手机免费在线| 26uuu欧美| 婷婷五月色花丁香社区| 色婷小说| 99色婷婷视频| 一级二级香港秋霞欧美欧美秋霞| 免費亭亭成人| 99热这里只有精品8| 婷婷社区五月天| 99精品免费视频| 去色色五月天| 亚洲婷婷视频| 99热只有这里有精品| 五月丁香综合网| 开心五月天激情网| 国产中文字幕在线视频免费观看| 五月丁香狠狠爱婷婷综合| 久久99网| 久久激情五月| 色婷婷六月丁香综合欲精品| 99九九视频| 国产一级片| 狼人婷婷久久| 婷婷五亚洲| 人人摸人人| 99久精品视频| Jh7Uf088VHafNm| 久久久久人妻精品| 婷婷综合网性| 五月婷婷乱| 大香蕉AV在线| 色婷婷色综合激情91| 亚洲AV综合在线观看| 五月丁香婷婷在线综合蜜桃| 天天摸,天天爽| 色99日韩| 久久婷婷五月综合网| 大香蕉Av在线| 丁香婷在线| 五月婷婷婷| 久久久精品AV| 欧美色频| 色九九九综合| 亚洲婷婷乱乱丁香| 欧美精品999| 久久性视频| 国产avapp 网| 一本九九色| 六月婷婷九月丁香亚洲综合| 色婷婷五月天成人网| 激情五月久久| 激情五月天色| 97色永久免费视频| 天天干天天操天天射| Av性爱网站| 久久九九综合| 大香蕉综合| 亚洲乱码w在线观看| 欧美交换配乱吟粗大25P| 东北熟女高潮99综合99| 91碰在线| 色狠狠综合网| 亚洲在线综合| 99热资源在线| 吊色AV男人的天堂| 热99在线| 亚洲九九婷婷| 成人婷婷| 日本久久人| 色综合大香蕉| 日韩成人电影AV| 99热在线观看精品| 天天爽人人综合免费7799| 婷婷五月色综合| 日韩欧美不卡| 婷婷五月天六月| 91麻豆国产三级精品福利在线观看| 91人人网| 久久色情| 97人妻碰碰中文无码久热丝袜| 天天操天天操天天操天天操天天操天天操| 亚洲亚洲人成综合网络| 中文字幕,综合,91| 91成人品| 激情小说五月天| www.色婷婷| 亚洲色a| 久久色六月| 激情欧美五月丁香| 日本99在线| 九九热黄色| 欧美va视频不用播放器的va视频网| 第五色色色婷婷| 亚洲黄色精品| 色婷婷小说| 五月婷婷影视| 中文成人在线| 丁香五月色色| 色婷婷综合久色AV五色最新| 啪色综合| 精品国产va久久久久| 欧美在线视频免费播放| 99热 在线播放| 婷婷九月丁香| 久久九九国产| 久久久久久人妻| 99这里只有精品在线观看| 91精品久久久久久综合五月天| 五月天婷婷色综合| 婷婷天天日婷婷| 婷婷五月天影院| 婷婷成人视频| 99热精这里只有精品| 国产成人+综合亚洲+天堂| 天天肏高清在线| 97av在线视频| av色色国产| 色婷婷久久久| 成人丁香婷婷| 啪啪激情综合| 爱草视频在线| 激情av在线| 熟女少妇内射日韩亚洲| 人妻爽爽爽久久久久久久久| 欧美激情综合| 亚洲精色| 99热自拍| 日美三级| 天天干一干| www.深爱激情| 做爱夜夜干天天操| 97艹| 91五月天| 超碰在线免费9| 六月婷婷国产| 久婷婷| 亚洲激情六月| 婷婷六月天| 色久影院| 天天色天天爱天天爽| 秋霞av吧| caop在线视频| 99热中文字幕久久| 婷婷久久大香蕉| 婷婷五月丁香色色| 久久丁香| 亚洲麻豆乱码国产2028| 婷婷五月丁香综合瑟瑟| 亚洲婷婷久久综合| 日本噜噜色网| 亚洲综合在线伊人婷| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 手机在线视频观看9| 色五月综合资源推荐| 久久丁香五月综合六月激情红杏视频| 一二线视频 另类| 婷婷色五月天在线观看| 丁香六月av| 久久99精品久久久久子伦| 激情五月天视频| 91人人操.COM| 五月婷在线播放| 99在线国| 翔田千里aV中文字幕| 亚洲在线免费成人| 99色视频| 五月激情综合网| www.henhenl| 色久丁香五| 亚洲视频伍月婷婷| 五月天婷婷丁香花| 五月天·www·com| 五月丁香六月婷婷啪啪综合 | 伊人久久艹| 另类激情五| 人人操婷婷| 日韩av免费版| 99热10在线高清播放| 伊人网啪啪| www.99日本| 热99在线精品| 99热这里只有是亚洲国产| 超碰色婷婷| 色色激情五月| 大香蕉九九操| 91在线视频综合| 99热狠狠操| 亚洲婷婷丁香五月| 久青草大香蕉| 777久久久| 日本在线wwww| 亚洲AV无码成人精品电影| 天天射影院| 噜噜视频| 噼里啪啦完整版中文在线观看| 97热在线精品| 色五月婷婷av| 久久五月综合| 日韩啪啪视频| 亚洲精品一区中文字幕乱码| 久久综合五月天| 思思热在线观看| 狠狠久久婷五月| www.婷婷亚洲基地| 九九激情| 黄色热99| 99在线视频观看| 热996精品在线观看| 99热热热99精品丁香| 亚洲综合九九| 俺去也综合| 国产肥白大熟妇BBBB视频| 97色碰| 丁香六月婷婷色XXXXX| 国产精品日日躁夜夜躁| 99re这里只有精品视频了| 秋霞三级色戒| 另类小说五月天激情| XXXX岛国| 丁香六月婷婷高清| 婷婷丁香五月高清| 九九久久99精品免费观看www| 这里只有精品在线播放| 五月丁香少妇| 久久九九怡红院| 激情婷婷五月天网址| 亚洲激情综| 欧日美女Va| 亚洲行行色色| 婷婷五月激情六月| 九九热免费视频| 九九爱激情| 91精品国产色猫| 五月综合色| 日韩精品无码99| 五月婷深深爱激情网| 国产五月天激情小说| 色婷婷五月天激情在线播放| 欧美色图45678| 婷婷大美在线| 婷婷五月天网| 成人精品在线| 91a片爽| 久草五月| 五月丁香色| 婷婷射综合| 色色色色色色97| 九九热啪啪| 欧美性猛交99久久久久99按摩| 欧美五月婷婷| 国产做爰视频免费播放| 成人综合网站| 97操女视频| 天天做天天要天天爱| 免费的日逼视频| 五月丁香六月婷婷开心网| ji'qi'luan'ren'lun| 色婷婷小说网| 日本人妻伦在线中文字幕| 五月丁香啪啪| 日日夜夜干| 精品国产AV色一区二区深夜久久 | 色五月天婷婷| 五月丁香综合啪啪| 超碰在线网站| 伊人狠狠狠综合| 久久五月天色婷婷| 这里只有精品96| 精品久久二6| 婷婷五月六月| 97在线观视频免费观看| 91狼友视频网页更新| 日韩成人电影av| 五月天天丁香婷婷在线中| 丁香五月激情澎湃一区| 99re6在线视频精品免费| 欧美性爱特黄一级aaaassss| wwxx日本| 成年人最刺激的综合网| 免费黄色视频网址| 99久久.www| 天天干天天 亚洲| 久久婷婷亚洲| AAA久久| 影音先锋偷偷色男人站| 色婷婷婷婷| 影音先锋偷偷色男人站| 天天日日夜夜爽| 96五月丁香熟女| 99热在线观看| 久久无码激情视频| 国产免费AV网站| 综合99在线| 亚洲一区二区无码蜜乳av| 狠狠色成人影片| 九九久久污| 久久成人天| 国产一级视频a| 色婷五月天亚洲| 九九碰九九爱97| 丁香五月综合| 日韩欧美一级大黄网站| 亚洲国产精品SUV| 婷五月丁香俺| 欧美色图天堂网| 操逼毛片国语对白| 女同激情久久av久久| 51精品国自产在线| 激情五月图| 蜜桃人妻无码AV天堂三区| 久热伊人9| 99视频这里只有久久精品| 激情图片婷婷| 亚洲激情综| 婷婷视频网| 国产免费一区二区三区三州老师F1F1.CC | 99网| 伊人婷婷五月天av|