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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符...

發(fā)布時(shí)間:2025/4/14 编程问答 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、基本概念

  重載的運(yùn)算符時(shí)具有特殊名字的函數(shù):它們的名字由關(guān)鍵字operator和其后要定義的運(yùn)算符號(hào)共同組成。和其他函數(shù)一樣,重載的運(yùn)算符也包含返回類型、參數(shù)列表以及函數(shù)體。

  重載運(yùn)算符函數(shù)的參數(shù)數(shù)量與該運(yùn)算符作用的運(yùn)算對(duì)象數(shù)量一樣多。一元運(yùn)算符有一個(gè)參數(shù),二元運(yùn)算符有兩個(gè)。對(duì)于二元運(yùn)算符來說,左側(cè)運(yùn)算對(duì)象傳遞給第一個(gè)參數(shù),而右側(cè)運(yùn)算對(duì)象傳遞給第二個(gè)參數(shù)。除了重載的函數(shù)調(diào)用運(yùn)算符operator()之外,其他重載運(yùn)算符不能含有默認(rèn)實(shí)參。

  當(dāng)一個(gè)重載的運(yùn)算符時(shí)成員函數(shù)時(shí),this綁定到左側(cè)運(yùn)算對(duì)象。成員運(yùn)算符函數(shù)的顯式參數(shù)數(shù)量比運(yùn)算對(duì)象的數(shù)量少一個(gè)。

  對(duì)一個(gè)運(yùn)算符來說,它或者是類的成員,或者至少含有一個(gè)類類型的參數(shù)。

  可以重載的運(yùn)算符:

+-*/%^
&|~!,=
<><=>=++--
<<>>==!=&&||
+=-=/=%=^=&=
|=*=<<=>>=[]()
->->*newnew []deletedelete []

  不能被重載的運(yùn)算符:

::.*.?:

  我們只能重載已有的運(yùn)算符,而無權(quán)發(fā)明新的運(yùn)算符號(hào)。對(duì)于一個(gè)重載的運(yùn)算符來說,其優(yōu)先級(jí)和結(jié)合律與對(duì)應(yīng)的內(nèi)置運(yùn)算符保持一致。

?1)直接調(diào)用一個(gè)重載的運(yùn)算符

  通用情況下,我們將運(yùn)算符作用于類型正確的實(shí)參,從而以這種間接方式“調(diào)用”重載的運(yùn)算符函數(shù)。然而,我們也能像調(diào)用普通函數(shù)一樣直接調(diào)用運(yùn)算符函數(shù),先指定函數(shù)名字,然后傳入數(shù)量正確、類型適當(dāng)?shù)膶?shí)參:

  // 一個(gè)非成員運(yùn)算符函數(shù)的等價(jià)調(diào)用
  data1+data2 // 普通的表達(dá)式
  operator+(data1,data2) // 等價(jià)的函數(shù)調(diào)用

  我們像調(diào)用其他成員函數(shù)一樣顯式地調(diào)用成員運(yùn)算符函數(shù)。首先指定運(yùn)算符函數(shù)的對(duì)象(或指針)的名字,然后使用點(diǎn)運(yùn)算符(或箭頭運(yùn)算符)訪問希望調(diào)用的函數(shù):

  data1+=data2 // 基于“調(diào)用”的表達(dá)式
  data1.operator+=(data2) // 對(duì)成員運(yùn)算符函數(shù)的等價(jià)調(diào)用

2)某些運(yùn)算符不應(yīng)該被重載

  某些運(yùn)算符指定了運(yùn)算對(duì)象的求值的順序。因?yàn)槭褂弥剌d的運(yùn)算符本質(zhì)上是一次函數(shù)調(diào)用,所以這些關(guān)于運(yùn)算對(duì)象求值順序的規(guī)則無法應(yīng)用到重載的運(yùn)算符上。特別是,邏輯與運(yùn)算符、邏輯或運(yùn)算符和逗號(hào)運(yùn)算符的運(yùn)算對(duì)象求值順序規(guī)則無法保留下來。除此之外,&&和||運(yùn)算符的重載版本也無法保留內(nèi)置運(yùn)算符的短路求值屬性,兩個(gè)運(yùn)算對(duì)象總是會(huì)被求值。

  還有一個(gè)原因使得我們一般不重載逗號(hào)運(yùn)算符和取地址符:C++語言已經(jīng)定義了這兩種運(yùn)算符用于類類型對(duì)象時(shí)的特殊含義,這一點(diǎn)與大多數(shù)運(yùn)算符都不相同。因?yàn)檫@兩種運(yùn)算符已經(jīng)有了內(nèi)置的含義,所以一般來說它們不應(yīng)該被重載,否則它們的行為將異于常態(tài),從而導(dǎo)致類的用戶無法適應(yīng)。

  通常情況下,不應(yīng)該重載逗號(hào)、取地址、邏輯與、邏輯或運(yùn)算符。

3)使用與內(nèi)置類型一致的含義

  如果某些類操作在邏輯上與運(yùn)算符相關(guān),則它們適合定義成重載的運(yùn)算符:

  • 如果類執(zhí)行IO操作,則定義移位運(yùn)算符使其與內(nèi)置類型的IO保持一致。
  • 如果類的某個(gè)操作是檢查相等性,則定義operator==;如果類有了operator==,意味著它通常也應(yīng)該有operator!=。
  • 如果類包含一個(gè)內(nèi)在的單序比較操作,則定義operator<;如果類有了operator<,則它也應(yīng)該含有其他關(guān)系操作。
  • 重載運(yùn)算符的返回類型通常情況下應(yīng)該與其內(nèi)置版本的返回類型兼容:邏輯運(yùn)算符和關(guān)系運(yùn)算符應(yīng)該返回bool,算術(shù)運(yùn)算符應(yīng)該返回一個(gè)類類型的值,賦值運(yùn)算符和復(fù)合賦值運(yùn)算符則應(yīng)該返回左側(cè)運(yùn)算對(duì)象的一個(gè)引用。

4)賦值和復(fù)合賦值運(yùn)算符

  賦值運(yùn)算符的行為與復(fù)合版本的類似:賦值之后,左側(cè)運(yùn)算對(duì)象和右側(cè)運(yùn)算對(duì)象的值相等,并且運(yùn)算符應(yīng)該返回它左側(cè)運(yùn)算對(duì)象的一個(gè)引用。重載的賦值運(yùn)算符應(yīng)該繼承而非違背其內(nèi)置版本的含義。

  如果類含有算術(shù)運(yùn)算符或者位運(yùn)算符,則最好也提供對(duì)應(yīng)的復(fù)合賦值運(yùn)算符。

5)選擇作為成員或者非成員

  下面的準(zhǔn)則有助于我們?cè)趯⑦\(yùn)算符定義為成員函數(shù)還是普通的非成員函數(shù)做出抉擇:

  • 賦值(=)、下標(biāo)([])、調(diào)用(())和成員訪問箭頭(->)運(yùn)算符必須還是成員。
  • 復(fù)合賦值運(yùn)算符一般來說應(yīng)該是成員,但并非必須。
  • 改變對(duì)象狀態(tài)的運(yùn)算符或者與給定類型密切相關(guān)的運(yùn)算符,如遞增、遞減和解引用運(yùn)算符,通常應(yīng)該是成員。
  • 具有對(duì)稱性的運(yùn)算符可能轉(zhuǎn)換任一端的運(yùn)算對(duì)象,例如算術(shù)、相等性、關(guān)系和位運(yùn)算符等,通常應(yīng)該是普通的非成員函數(shù)。

  當(dāng)把運(yùn)算符定義成成員函數(shù)時(shí),它的左側(cè)運(yùn)算對(duì)象必須是運(yùn)算符所屬類的一個(gè)對(duì)象。

  當(dāng)把運(yùn)算符定義成普通的非成員函數(shù)時(shí),唯一的要求是是至少有一個(gè)運(yùn)算對(duì)象是類類型,并且兩個(gè)運(yùn)算對(duì)象都能精確無誤地轉(zhuǎn)換。

?

二、輸入和輸出運(yùn)算符

1、重載輸出運(yùn)算符<<

  通常情況下,輸出運(yùn)算符的第一個(gè)形參是非常量ostream對(duì)象的引用。之所以ostream是非常量是因?yàn)橄蛄鲗懭雰?nèi)容會(huì)改變其狀態(tài);而該形參是引用是因?yàn)槲覀儫o法直接復(fù)制一個(gè)ostream對(duì)象。

  第二個(gè)形參一般來說是一個(gè)常量的引用,該常量是我們想要打印的類類型。第二個(gè)形參是引用的原因是我們希望避免復(fù)制實(shí)參;而之所以該形參是常量是因?yàn)橥ǔG闆r打印對(duì)象不會(huì)改變對(duì)象的內(nèi)容。

  為了與其他輸出運(yùn)算符保持一致,operator<<一般要返回它的ostream形參。

1 std::ostream &operator<<(std::ostream& os, const SalesData &item) 2 { 3 os << item.m_bookno << ", " << item.m_unitssold << ", " 4 << item.m_revenue << ", " << item.avgPrice(); 5 return os; 6 } View Code

1)輸入輸出運(yùn)算符必須是非成員函數(shù)

  與iostream標(biāo)準(zhǔn)庫兼容的輸入輸出運(yùn)算符必須是普通的非成員函數(shù),而不能是類的成員函數(shù),因?yàn)槲覀儫o法給標(biāo)準(zhǔn)的類添加任何成員。

  IO運(yùn)算符通常需要讀寫類的非公有數(shù)據(jù)成員,所以IO運(yùn)算符一般被聲明為友元。

?

2、重載輸入運(yùn)算符>>

  通常情況下,輸入運(yùn)算符的第一個(gè)形參是運(yùn)算符將要讀取的流的引用,第二個(gè)形參是將要讀入到的非常量對(duì)象的引用。該運(yùn)算符通常會(huì)返回某個(gè)給定流的引用。第二個(gè)形參之所以必須是個(gè)非常量是因?yàn)檩斎脒\(yùn)算符本身的目的就是將數(shù)據(jù)讀入到這個(gè)對(duì)象中。

  輸入運(yùn)算符必須處理輸入可能失敗的情況,而輸出運(yùn)算符不需要。

1 std::istream &operator>>(std::istream &is, SalesData &item) 2 { 3 double price; 4 is >> item.m_bookno >> item.m_unitssold >> price; 5 if (is) 6 item.m_revenue = item.m_unitssold*price; 7 else 8 item = SalesData(); // 輸入失敗,對(duì)象被賦予默認(rèn)的狀態(tài) 9 return is; 10 } View Code

1)輸入時(shí)的錯(cuò)誤

  在執(zhí)行輸入運(yùn)算符時(shí)可能發(fā)生以下錯(cuò)誤:

  • 當(dāng)流含有錯(cuò)誤類型的數(shù)據(jù)時(shí)讀取操作可能失敗。
  • 當(dāng)讀取到達(dá)文件末尾或者遇到輸入流的其他錯(cuò)誤時(shí)也會(huì)失敗。

?

三、算術(shù)和關(guān)系運(yùn)算符

?  通常情況下,我們把算術(shù)運(yùn)算符定義成非成員函數(shù)以允許對(duì)左側(cè)或右側(cè)的運(yùn)算對(duì)象進(jìn)行轉(zhuǎn)換。因?yàn)檫@些運(yùn)算符一般不需要改變運(yùn)算對(duì)象的狀態(tài),所以形參都是常量的引用。

  算術(shù)運(yùn)算通常會(huì)計(jì)算它的兩個(gè)運(yùn)算對(duì)象并得到一個(gè)新值,這個(gè)值有別于任意一個(gè)運(yùn)算對(duì)象,常常位于一個(gè)局部變量之內(nèi),操作完成后返回該變量的副本作為其結(jié)果。如果類定義了算術(shù)運(yùn)算符,則它一般也會(huì)定義一個(gè)對(duì)應(yīng)的復(fù)合賦值運(yùn)算符。此時(shí),最有效的方法是使用復(fù)合賦值運(yùn)算符來定義算術(shù)運(yùn)算符。

1 SalesData &SalesData::operator+=(const SalesData &rhs) 2 { 3 m_unitssold += rhs.m_unitssold; 4 m_revenue += rhs.m_revenue; 5 return *this; 6 } 7 8 SalesData operator+(const SalesData &lhs, const SalesData &rhs) 9 { 10 SalesData sum = lhs; 11 sum += rhs; 12 return sum; 13 } View Code

1、相等運(yùn)算符

  通常情況下,C++中的類通過相等運(yùn)算符來檢驗(yàn)兩個(gè)對(duì)象是否相等。也就是說,它們會(huì)比較對(duì)象的每一個(gè)數(shù)據(jù)成員,只有當(dāng)所有對(duì)應(yīng)的成員都相等時(shí)才認(rèn)為兩個(gè)對(duì)象相等。

1 bool operator==(const SalesData &lhs, const SalesData &rhs) 2 { 3 return lhs.m_bookno == rhs.m_bookno&& 4 lhs.m_unitssold == rhs.m_unitssold&& 5 lhs.m_revenue == rhs.m_revenue; 6 } 7 8 bool operator!=(const SalesData &lhs, const SalesData &rhs) 9 { 10 return !(lhs == rhs); 11 } View Code

2、關(guān)系運(yùn)算符

  定義了相等運(yùn)算符的類也常常(但不總是)包含關(guān)系運(yùn)算符。特別是,因?yàn)殛P(guān)聯(lián)容器和一些算法要用到小于運(yùn)算符,所以定義operator<會(huì)比較有用。

  通常情況下關(guān)系運(yùn)算符應(yīng)該:定義順序關(guān)系,令其與關(guān)聯(lián)容器中對(duì)關(guān)鍵字的要求一致。如果類同時(shí)也含有==運(yùn)算符的話,則定義一種關(guān)系令其與==保持一致。特別是,如果兩個(gè)對(duì)象是!=的話,那么一個(gè)對(duì)象應(yīng)該<另一個(gè)。

?

四、賦值運(yùn)算符

  我們可以重載賦值運(yùn)算符。不論形參的類型是什么,賦值運(yùn)算符都必須定義為成員函數(shù)。賦值運(yùn)算符返回其左側(cè)運(yùn)算對(duì)象的引用。

1)復(fù)合賦值運(yùn)算符

  復(fù)合賦值運(yùn)算符不非得是類的成員,不過我們還是傾向于把包括賦值在內(nèi)的所有賦值運(yùn)算都定義在類的內(nèi)部。為了與內(nèi)置類型的復(fù)合賦值保持一致,類中的復(fù)合賦值運(yùn)算符也要返回其左側(cè)運(yùn)算對(duì)象的引用。

?

五、下標(biāo)運(yùn)算符

  表示容器的類通??梢酝ㄟ^元素在容器中的位置訪問元素,這些類一般會(huì)定義下標(biāo)運(yùn)算符operator[]。下標(biāo)運(yùn)算符必須是成員函數(shù)。

  為了與下標(biāo)的原始定義兼容,下標(biāo)運(yùn)算符通常以所訪問元素的引用作為返回值,這樣做的好處是下標(biāo)可以出現(xiàn)在賦值運(yùn)算符的任意一端。進(jìn)一步,我們最好同時(shí)定義下標(biāo)運(yùn)算符的常量版本和非常量版本,當(dāng)作用于一個(gè)常量對(duì)象時(shí),下標(biāo)運(yùn)算符返回常量引用以確保我們不會(huì)給返回的對(duì)象賦值。

1 class StrVec 2 { 3 public: 4 StrVec():vec(){} 5 void push_back(const std::string &s) { vec.push_back(s); } 6 std::string &operator[](std::size_t n) { return vec[n]; } 7 const std::string &operator[](std::size_t n)const { return vec[n]; } 8 private: 9 std::vector<std::string> vec; 10 }; View Code

?

六、遞增和遞減運(yùn)算符

  定義遞增和遞減運(yùn)算符的類應(yīng)該同時(shí)定義前置版本和后置版本。這些運(yùn)算符通常應(yīng)該被定義成類的成員。

1)定義前置遞增/遞減運(yùn)算符

  為了與內(nèi)置版本保持一致,前置運(yùn)算符應(yīng)該返回遞增或遞減后對(duì)象的引用。

1 // 前置版本:返回遞增/遞減對(duì)象的引用 2 StrBlob &StrBlob::operator++() 3 { 4 ++curr; 5 check(curr, "increment past end"); 6 return *this; 7 } 8 9 StrBlob &StrBlob::operator--() 10 { 11 --curr; 12 check(curr, "decrement past end"); 13 return *this; 14 } View Code

2)區(qū)分前置和后置運(yùn)算符

  要想同時(shí)定義前置和后置運(yùn)算符,必須首先解決一個(gè)問題,即普通的重載形式無法區(qū)分這兩種情況。前置和后置版本使用的是同一個(gè)符號(hào),意味著其重載版本所用的名字將是相同的,并且運(yùn)算對(duì)象的數(shù)量和類型也相同。

  為了解決這個(gè)問題,后置版本接受一個(gè)額外的(不被使用)int類型的形參。當(dāng)我們使用后置運(yùn)算符時(shí),編譯器為這個(gè)形參提供一個(gè)值為0的實(shí)參。盡管從語法上來說后置函數(shù)可以使用這個(gè)額外的形參,但是在實(shí)際過程中通常不會(huì)這么做。這個(gè)形參的唯一作用就是區(qū)分前置和后置版本的函數(shù),而不是真的要在實(shí)現(xiàn)后置版本時(shí)參與運(yùn)算。

1 // 后置版本 2 StrBlob StrBlob::operator++(int) 3 { 4 StrBlob ret = *this; 5 ++*this; 6 return ret; 7 } 8 9 StrBlob StrBlob::operator--(int) 10 { 11 StrBlob ret = *this; 12 --*this; 13 return ret; 14 } View Code

  因?yàn)槲覀儾粫?huì)用到int形參,所以無須為其命名。

完整代碼:

1 #include <iostream> 2 #include <string> 3 #include <vector> 4 #include <algorithm> 5 #include <memory> 6 7 class StrBlob 8 { 9 public: 10 // 前置版本 11 StrBlob &operator++(); 12 StrBlob &operator--(); 13 // 后置版本 14 StrBlob operator++(int); 15 StrBlob operator--(int); 16 public: 17 typedef std::vector<std::string>::size_type size_type; 18 StrBlob(std::initializer_list<std::string> items) 19 :data(std::make_shared<std::vector<std::string>>(items)), curr(0) {} 20 size_type size()const { return data->size(); } 21 std::string now()const { return (*data)[curr]; } 22 23 private: 24 void check(size_type i, const std::string &msg) const 25 { 26 if (i >= data->size()) 27 throw std::out_of_range(msg); 28 } 29 private: 30 std::shared_ptr<std::vector<std::string>> data; // 多個(gè)對(duì)象間共享底層元素 31 std::size_t curr; // 在數(shù)組中的當(dāng)前位置 32 }; 33 34 // 前置版本:返回遞增/遞減對(duì)象的引用 35 StrBlob &StrBlob::operator++() 36 { 37 ++curr; 38 check(curr, "increment past end"); 39 return *this; 40 } 41 42 StrBlob &StrBlob::operator--() 43 { 44 --curr; 45 check(curr, "decrement past end"); 46 return *this; 47 } 48 // 后置版本 49 StrBlob StrBlob::operator++(int) 50 { 51 StrBlob ret = *this; 52 ++*this; 53 return ret; 54 } 55 56 StrBlob StrBlob::operator--(int) 57 { 58 StrBlob ret = *this; 59 --*this; 60 return ret; 61 } 62 63 int main() 64 { 65 StrBlob blob({ "a", "b","c","d","e" }); 66 std::cout << (blob++).now() << std::endl; 67 return 0; 68 } View Code

?

七、成員訪問運(yùn)算符

  在迭代器及智能指針類中常常用到解引用運(yùn)算符(*)和箭頭運(yùn)算符(->)。箭頭運(yùn)算符必須是類的成員。解引用運(yùn)算符通常也是類的成員,盡管并非必須如此。

1 class StrBlob 2 { 3 public: 4 // 前置版本 5 StrBlob &operator++(); 6 StrBlob &operator--(); 7 // 后置版本 8 StrBlob operator++(int); 9 StrBlob operator--(int); 10 11 std::string &operator*()const { 12 return (*data)[curr]; 13 } 14 std::string *operator->()const { 15 return &this->operator*(); // 將實(shí)際工作委托給解引用運(yùn)算符 16 } 17 public: 18 typedef std::vector<std::string>::size_type size_type; 19 StrBlob(std::initializer_list<std::string> items) 20 :data(std::make_shared<std::vector<std::string>>(items)), curr(0) {} 21 size_type size()const { return data->size(); } 22 std::string now()const { return (*data)[curr]; } 23 24 private: 25 void check(size_type i, const std::string &msg) const 26 { 27 if (i >= data->size()) 28 throw std::out_of_range(msg); 29 } 30 private: 31 std::shared_ptr<std::vector<std::string>> data; // 多個(gè)對(duì)象間共享底層元素 32 std::size_t curr; // 在數(shù)組中的當(dāng)前位置 33 }; View Code

1)對(duì)箭頭運(yùn)算符返回值的限定

  和大多數(shù)其他運(yùn)算符一樣(盡管這么做不好),我們能令operator*完成任何我們指定的操作。箭頭運(yùn)算符則不是這樣,它永遠(yuǎn)不能丟掉成員訪問這個(gè)最基本的含義。當(dāng)我們重載箭頭時(shí),可以改變的是箭頭從哪個(gè)對(duì)象中獲取成員,而箭頭獲取成員這一事實(shí)則永遠(yuǎn)不變。

  對(duì)于形如point->mem的表達(dá)式來說,point必須是指向類對(duì)象的指針或者是一個(gè)重載了operator->的類的對(duì)象。根據(jù)point類型不同,point->mem分別等價(jià)于

  (*point).mem;? // point是一個(gè)內(nèi)置的指針類型

  point.operator()->mem; // point是類的一個(gè)對(duì)象

除此之外,代碼都將發(fā)生錯(cuò)誤。point->mem的執(zhí)行過程如下所示:

  • 如果point是指針,則我們應(yīng)用內(nèi)置的箭頭運(yùn)算符,表達(dá)式等價(jià)于(*point).mem。首先解引用該指針,然后從所得的對(duì)象中獲取指定的成員。如果point所指的類型沒有名為mem的成員,程序發(fā)生錯(cuò)誤。
  • 如果point是定義了operator->的類的一個(gè)對(duì)象,則我們使用point.operator->()的結(jié)果來獲取mem。其中,如果該結(jié)果是一個(gè)指針,則執(zhí)行第1步;如果該結(jié)果本身含有重載的operator->(),則重復(fù)調(diào)用當(dāng)前步驟。最終,當(dāng)這一過程結(jié)束時(shí)程序或者返回了所需的內(nèi)容,或者返回一些表示程序錯(cuò)誤的信息。
  •   重載的箭頭運(yùn)算符必須返回類的指針或者自定義了箭頭運(yùn)算符的某個(gè)類的對(duì)象。

    ?

    一些完整的例子:

    1 #ifndef SALES_DATA 2 #define SALES_DATA 3 4 #include <iostream> 5 #include <string> 6 class SalesData 7 { 8 // 友元聲明 9 friend std::ostream &operator<<(std::ostream &os, const SalesData &item); 10 friend std::istream &operator>>(std::istream &, SalesData &); 11 friend SalesData operator+(const SalesData &, const SalesData &); 12 friend bool operator==(const SalesData &, const SalesData &); 13 friend bool operator!=(const SalesData &, const SalesData &); 14 public: 15 SalesData &operator+=(const SalesData &); 16 public: 17 SalesData(const std::string &s="") :m_bookno(s), m_unitssold(0), m_revenue(0) {} 18 SalesData(const std::string &s, unsigned n, double p) : 19 m_bookno(s), m_unitssold(n), m_revenue(p * n) {} 20 private: 21 double avgPrice() const; 22 23 std::string m_bookno; // 書名 24 unsigned m_unitssold; // 數(shù)量 25 double m_revenue; // 總價(jià) 26 }; 27 28 std::ostream &operator<<(std::ostream& os, const SalesData &item); 29 std::istream &operator>>(std::istream &, SalesData &); 30 SalesData operator+(const SalesData &, const SalesData &); 31 bool operator==(const SalesData &, const SalesData &); 32 bool operator!=(const SalesData &, const SalesData &); 33 #endif SalesData.h 1 #include "SalesData.h" 2 #include <string> 3 4 std::ostream &operator<<(std::ostream& os, const SalesData &item) 5 { 6 os << item.m_bookno << ", " << item.m_unitssold << ", " 7 << item.m_revenue << ", " << item.avgPrice(); 8 return os; 9 } 10 11 std::istream &operator>>(std::istream &is, SalesData &item) 12 { 13 double price; 14 is >> item.m_bookno >> item.m_unitssold >> price; 15 if (is) 16 item.m_revenue = item.m_unitssold*price; 17 else 18 item = SalesData(); // 輸入失敗,對(duì)象被賦予默認(rèn)的狀態(tài) 19 return is; 20 } 21 22 SalesData &SalesData::operator+=(const SalesData &rhs) 23 { 24 m_unitssold += rhs.m_unitssold; 25 m_revenue += rhs.m_revenue; 26 return *this; 27 } 28 29 SalesData operator+(const SalesData &lhs, const SalesData &rhs) 30 { 31 SalesData sum = lhs; 32 sum += rhs; 33 return sum; 34 } 35 36 bool operator==(const SalesData &lhs, const SalesData &rhs) 37 { 38 return lhs.m_bookno == rhs.m_bookno&& 39 lhs.m_unitssold == rhs.m_unitssold&& 40 lhs.m_revenue == rhs.m_revenue; 41 } 42 43 bool operator!=(const SalesData &lhs, const SalesData &rhs) 44 { 45 return !(lhs == rhs); 46 } 47 48 double SalesData::avgPrice() const 49 { 50 if (m_unitssold) 51 return m_revenue / m_unitssold; 52 else 53 return 0; 54 } SalesData.cpp 1 #include <iostream> 2 #include <string> 3 #include <vector> 4 #include <algorithm> 5 #include <memory> 6 7 class StrBlob 8 { 9 public: 10 // 前置版本 11 StrBlob &operator++(); 12 StrBlob &operator--(); 13 // 后置版本 14 StrBlob operator++(int); 15 StrBlob operator--(int); 16 17 std::string &operator*()const { 18 return (*data)[curr]; 19 } 20 std::string *operator->()const { 21 return &this->operator*(); // 將實(shí)際工作委托給解引用運(yùn)算符 22 } 23 public: 24 typedef std::vector<std::string>::size_type size_type; 25 StrBlob(std::initializer_list<std::string> items) 26 :data(std::make_shared<std::vector<std::string>>(items)), curr(0) {} 27 size_type size()const { return data->size(); } 28 std::string now()const { return (*data)[curr]; } 29 30 private: 31 void check(size_type i, const std::string &msg) const 32 { 33 if (i >= data->size()) 34 throw std::out_of_range(msg); 35 } 36 private: 37 std::shared_ptr<std::vector<std::string>> data; // 多個(gè)對(duì)象間共享底層元素 38 std::size_t curr; // 在數(shù)組中的當(dāng)前位置 39 }; 40 41 // 前置版本:返回遞增/遞減對(duì)象的引用 42 StrBlob &StrBlob::operator++() 43 { 44 ++curr; 45 check(curr, "increment past end"); 46 return *this; 47 } 48 49 StrBlob &StrBlob::operator--() 50 { 51 --curr; 52 check(curr, "decrement past end"); 53 return *this; 54 } 55 // 后置版本 56 StrBlob StrBlob::operator++(int) 57 { 58 StrBlob ret = *this; 59 ++*this; 60 return ret; 61 } 62 63 StrBlob StrBlob::operator--(int) 64 { 65 StrBlob ret = *this; 66 --*this; 67 return ret; 68 } 69 70 int main() 71 { 72 StrBlob blob({ "a", "b","c","d","e" }); 73 std::cout << blob->size() << std::endl; 74 return 0; 75 } main.cpp

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/ACGame/p/10304257.html

    總結(jié)

    以上是生活随笔為你收集整理的重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    在线看片成人 | 自拍超碰在线 | 国产九九精品视频 | 黄色毛片视频 | 五月天开心 | 久久国产美女 | 天天爽综合网 | 欧美性网站 | 五月婷婷久 | 中文字幕亚洲情99在线 | 香蕉久久久久久av成人 | 黄色三级久久 | 成人黄色电影在线播放 | 人人添人人澡人人澡人人人爽 | 久久精品久久久久久久 | 日韩成人免费电影 | 伊人春色电影网 | 久久精品91久久久久久再现 | 日韩精品免费在线视频 | 欧美激情片在线观看 | 久久一区二区免费视频 | 亚洲精品视频在线看 | 成人91免费视频 | 99婷婷狠狠成为人免费视频 | 97视频资源| 久久久免费毛片 | 国产精品普通话 | 日韩深夜在线观看 | 欧亚日韩精品一区二区在线 | 91av视频在线免费观看 | 黄色免费看片网站 | 婷婷新五月 | 最近中文字幕在线播放 | 国产精品av一区二区 | 日日夜夜精品视频 | 日韩精品免费一区二区三区 | 在线观看av的网站 | 在线视频 一区二区 | 精品国产欧美 | 亚洲精品视频在线看 | 国内偷拍精品视频 | 日韩资源在线 | 日本一区二区三区免费看 | 91精品国自产在线偷拍蜜桃 | 国产一区二区日本 | 国产粉嫩在线 | 五月婷婷丁香网 | 一级黄色片在线观看 | 成人黄性视频 | 国产99精品在线观看 | 91久久久久久国产精品 | 中文字幕在线视频国产 | 色资源在线观看 | 91亚洲网| 黄色成人在线 | 999久久久免费视频 午夜国产在线观看 | 粉嫩av一区二区三区四区五区 | 91视频在线观看免费 | 日韩中文字幕视频在线观看 | 一级黄色a视频 | 国产伦精品一区二区三区… | 天天爱天天射天天干天天 | 欧美日韩高清一区二区三区 | 日韩视频一区二区在线观看 | 人人插超碰 | 亚洲黄色在线 | 婷婷资源站 | 91精品资源 | 综合色站导航 | 99热国产在线 | 精品国产伦一区二区三区观看说明 | 国产精品爽爽爽 | 色综合久久久久综合 | 免费在线观看成人av | 在线黄色国产电影 | 中文字幕在线观看播放 | 97超碰国产精品女人人人爽 | 国产又黄又爽无遮挡 | 国产粉嫩在线 | 黄色av网站在线免费观看 | 国产一级视频在线免费观看 | 九九热国产 | 国模精品一区二区三区 | 99视频精品在线 | 激情五月播播久久久精品 | 国产一区二区电影在线观看 | 国产一区二区三区免费在线 | 在线黄av| av日韩中文 | 亚洲激情 欧美激情 | 六月激情丁香 | 亚洲国产精品久久久久 | 91视频亚洲| 国产专区在线播放 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 开心色插 | 日本激情动作片免费看 | 亚洲精品在线网站 | 久久亚洲专区 | 婷婷久久综合网 | 美女精品网站 | 久久亚洲综合国产精品99麻豆的功能介绍 | 日韩一区二区三区观看 | 亚洲欧洲国产视频 | www看片网站 | 成年人在线免费视频观看 | 亚洲欧美在线视频免费 | 久久国产精品二国产精品中国洋人 | 午夜色站 | 国产精品岛国久久久久久久久红粉 | 成人精品一区二区三区中文字幕 | 91成人破解版 | 99精品国产兔费观看久久99 | 超碰人人做 | 国产成人精品一区二区三区免费 | 精品在线观看国产 | 成人aaa毛片| 日韩系列在线观看 | 免费人成在线观看网站 | 91九色国产蝌蚪 | 精品视频久久 | 欧美一区在线观看视频 | 少妇搡bbbb搡bbb搡aa | 99精品黄色片免费大全 | av片免费播放 | se婷婷| 日韩视| 色香网| 久久综合精品一区 | 成人a视频在线观看 | 久久久精品视频网站 | 在线视频观看国产 | 国产精品久久久久久久av大片 | 黄色电影网站在线观看 | 国产亚洲永久域名 | 久久精品网站免费观看 | 插插插色综合 | 国产白浆视频 | 在线看日韩 | 日韩一区正在播放 | 日韩中午字幕 | 日韩精品久久久久久久电影99爱 | 色噜噜在线观看视频 | 手机在线欧美 | 欧洲精品视频一区二区 | 96国产在线| 天天操夜夜想 | 在线免费观看视频一区二区三区 | 免费高清看电视网站 | 国产精品网站一区二区三区 | 91黄色在线视频 | 国产成人精品亚洲 | 91精品国| 欧美精品在线一区 | 欧美国产高清 | 国产福利91精品 | 久久久久久久久影视 | 中文字幕资源网在线观看 | av一本久道久久波多野结衣 | 丰满少妇对白在线偷拍 | 国内小视频在线观看 | 中文字幕国语官网在线视频 | 久久精品毛片 | 久热香蕉视频 | 麻豆影视在线播放 | 九九一级片 | 久久免费电影 | 欧美男男激情videos | 天天亚洲| 国内视频在线 | 国产精品久久久久久久久久久免费 | 日本久久电影网 | 亚洲在线视频播放 | 黄色录像av| 亚洲电影黄色 | 久久精品一二三区白丝高潮 | aa级黄色大片 | 中文字幕一区二区三区视频 | 天天艹天天 | 欧美一级片在线 | 中文字幕av在线不卡 | 日韩一二三区不卡 | 色中文字幕在线观看 | 精品久久精品 | 超碰av在线 | 亚洲视频播放 | 国产香蕉视频在线观看 | 欧美日韩免费一区二区三区 | 久久免费视频精品 | 日韩专区 在线 | 亚洲国产无 | 国模精品一区二区三区 | 免费视频久久久久久久 | 色资源网在线观看 | 四虎亚洲精品 | av电影中文字幕在线观看 | 欧美成人日韩 | 91亚洲欧美激情 | 久久天天躁夜夜躁狠狠躁2022 | 久久影院中文字幕 | 中文字幕亚洲欧美 | 久久天天躁夜夜躁狠狠躁2022 | 91精品电影 | 69亚洲视频 | av大片免费 | www.综合网.com| 日韩成人一级大片 | 日韩精品视频在线观看免费 | 亚洲精品欧美成人 | 超级碰碰免费视频 | 日本在线观看中文字幕无线观看 | 色婷婷色 | 91精品毛片| 午夜精品久久久久久久久久久 | 色播六月天| 国产精品久久在线观看 | 日韩午夜av电影 | 日本中文在线观看 | 69av在线视频| 天天干天天操天天 | 日韩乱码在线 | 97看片吧| a√国产免费a | 久久婷婷色 | 99国产免费网址 | 黄色成年 | 欧美日韩午夜爽爽 | 在线看av的网址 | 婷婷国产在线 | 国产亚洲精品久久久久久电影 | 黄a在线观看 | 亚州国产精品视频 | 国产精品一区免费看8c0m | 91爱爱网址 | 免费视频成人 | 狠狠狠狠狠色综合 | 色偷偷88888欧美精品久久久 | 麻豆视频免费入口 | 在线免费高清 | 国产黑丝一区二区 | 久久久久久久亚洲精品 | 国产亚洲在 | 日韩中文字幕免费看 | se婷婷 | 天天爽天天爽夜夜爽 | 黄色片网站av | 91天堂在线观看 | 欧美va天堂va视频va在线 | 亚洲,播放 | 婷婷色社区 | 久久久久久久久久久高潮一区二区 | 日韩在线电影一区二区 | 午夜视频导航 | 黄色精品在线看 | 日韩免费一区 | 国产精品va| 亚洲 欧美 另类人妖 | 国产精品视频线看 | 粉嫩aⅴ一区二区三区 | 波多野结衣在线播放一区 | 久久久久久中文字幕 | 色 免费观看 | 久久精品国产99 | 国产精品一区一区三区 | 免费av高清 | 人人搞人人爽 | 日韩午夜精品 | 久久视频99| 91精品蜜桃 | 天天激情站 | 亚洲午夜av | 久久精品这里热有精品 | 天天插天天爱 | 婷婷网站天天婷婷网站 | 婷婷丁香六月 | 伊人成人精品 | 久久久国产毛片 | 麻豆91精品 | 一区二区精品在线 | 丁香六月中文字幕 | 国产一区二区在线免费视频 | 激情欧美丁香 | 国产一级免费av | 2023年中文无字幕文字 | 国产毛片久久久 | 国产精品av一区二区 | 99久久精品免费看国产 | 91亚洲精品乱码久久久久久蜜桃 | 欧美激情第一页xxx 午夜性福利 | 国产高清99 | 奇米网网址| 日韩中文在线字幕 | 国产一区欧美日韩 | 欧美日韩精品免费观看视频 | 五月婷婷狠狠 | 丁香网五月天 | 成人免费在线播放 | 激情久久伊人 | 黄色三级在线观看 | 最近中文字幕在线中文高清版 | 亚洲狠狠婷婷综合久久久 | 国产精品视频你懂的 | 欧洲色吧 | 在线观看中文字幕视频 | 久久艹久久| 高清av免费看 | 中文字幕在线播放第一页 | 丁香五香天综合情 | 亚洲乱码中文字幕综合 | 人人澡人人干 | 久久精品亚洲综合专区 | 四季av综合网站 | 色综合天天综合 | 黄色视屏在线免费观看 | 中文字幕欧美三区 | 夜夜操天天操 | 99久久9| 日韩中文字幕视频在线观看 | 久久网站最新地址 | 日本在线成人 | 在线播放精品一区二区三区 | 91电影福利 | 黄色成人在线观看 | 国产午夜不卡 | 午夜婷婷综合 | 99国产精品一区二区 | 欧美一性一交一乱 | 激情五月视频 | 国产999久久久 | 又污又黄的网站 | 色综合久久网 | 亚洲精品黄色在线观看 | 五月天中文在线 | 日日噜噜噜噜夜夜爽亚洲精品 | 在线看黄网站 | 九九九九热精品免费视频点播观看 | 最近中文字幕在线 | 成人av电影免费在线观看 | 日韩激情视频在线 | 久久久久久久久久久电影 | 色婷婷激情电影 | 91在线九色 | 欧美日韩伦理在线 | 亚洲综合在线播放 | 久久精品亚洲精品国产欧美 | 日韩av影片在线观看 | 在线亚洲午夜片av大片 | 久久婷婷五月综合色丁香 | 国产高清成人在线 | 亚洲草视频 | 天天曰天天曰 | 亚洲永久精品国产 | 麻豆影视在线免费观看 | 久久久国产成人 | 中文免费观看 | 久久精品男人的天堂 | 精品国产1区2区3区 国产欧美精品在线观看 | 色先锋av资源中文字幕 | 九色自拍视频 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产午夜精品久久久久久久久久 | 欧美精品国产综合久久 | 久久久免费观看视频 | 欧美一区二区伦理片 | 久久精品com | 久久久久观看 | 久久久天天操 | 国产一区二区播放 | 免费国产在线精品 | 亚洲精品色视频 | 婷婷激情在线观看 | 成人av片免费观看app下载 | 综合久久久久 | 最新国产精品久久精品 | 99色婷婷 | 在线观看91精品国产网站 | 免费看黄在线 | 国产精品99久久久精品 | 久久99精品国产 | 日本女人在线观看 | 亚洲色图美腿丝袜 | 九色视频网 | 国产 亚洲 欧美 在线 | 国产精品日韩欧美一区二区 | 成年人在线观看 | 国产精品第一 | 精品视频免费播放 | 国产伦理久久精品久久久久_ | 一区二区三区电影在线播 | 97国产大学生情侣酒店的特点 | 久久久穴 | 日韩精品高清视频 | 99久久久国产精品免费99 | 日韩高清在线观看 | 亚洲v欧美v国产v在线观看 | 亚洲综合小说电影qvod | 久艹在线免费观看 | 91毛片视频 | 五月激情五月激情 | 国产精品久久久久久久久久久免费 | 久久免费观看少妇a级毛片 久久久久成人免费 | 高清不卡一区二区在线 | 久久久国产在线视频 | av短片在线| 狠狠色噜噜狠狠 | 91视频免费视频 | 九九九九九精品 | 成人毛片网| 国产精成人品免费观看 | 天天插天天射 | 91热精品| 久草在线最新 | 99精品国产在热久久下载 | 国产99久久精品一区二区永久免费 | 日韩视频一 | 亚洲成av | 欧美一区二区视频97 | 日韩大片免费在线观看 | 麻豆91在线看 | 99精品在线 | 成人黄色国产 | 国产精品免费久久久久 | 五月婷婷另类国产 | www.夜夜草| 91麻豆精品国产自产在线游戏 | 日韩av午夜 | av免费在线看网站 | 黄色成人免费电影 | 亚洲日日日 | 在线视频久久 | 国内视频1区| www.国产高清 | 国产五月色婷婷六月丁香视频 | 香蕉网在线观看 | 午夜国产一区 | 国产一级大片在线观看 | 深夜国产福利 | 日韩精品中文字幕有码 | 九九视频这里只有精品 | 国产99久久九九精品免费 | 在线视频 91 | www.国产在线观看 | 久久在线观看 | 欧美一区中文字幕 | 在线观看黄色的网站 | 天天摸天天舔 | 久久久久久久久久久久久国产精品 | 亚洲国产精品va在线看 | 精品一区91| 一区二区三区视频网站 | 最近在线中文字幕 | 国产拍揄自揄精品视频麻豆 | 奇米导航 | 激情婷婷| 最近中文字幕视频网 | 91精品办公室少妇高潮对白 | 欧美一级性生活视频 | 国产成人一区二区三区久久精品 | 一二区av| 中文av在线播放 | 国产精品99免费看 | 成人高清在线观看 | 国产xx在线 | 亚洲黄色免费观看 | 2023av在线 | 中文字幕国产在线 | 日韩有码第一页 | 亚洲精品视频中文字幕 | 久久99精品视频 | 色视频一区 | 在线观av| 97超碰人人模人人人爽人人爱 | 国产精品免费视频观看 | 中文字幕一二 | 伊人久久影视 | 天天射天天干天天操 | 开心色婷婷 | 天堂va在线高清一区 | 国产一区二区不卡视频 | av资源中文字幕 | 国产精品免费大片视频 | 亚洲国产一区二区精品专区 | 九九九热精品免费视频观看网站 | 日韩肉感妇bbwbbwbbw | 久久夜色网 | 久视频在线播放 | 亚洲精品在线观看的 | 欧美精彩视频在线观看 | 伊人婷婷久久 | 国产三级久久久 | 超碰伊人网 | www视频在线观看 | 日本激情中文字幕 | 久久66热这里只有精品 | 五月婷在线 | 久久久国产精品一区二区三区 | mm1313亚洲精品国产 | 国产黄色成人av | 久久久久久久久久久高潮一区二区 | 中文在线www | av女优中文字幕在线观看 | 国产精品99久久久久久有的能看 | 久久久一本精品99久久精品 | 国产小视频在线观看 | 天天玩天天干天天操 | www.久久久 | 久久试看 | 免费看黄在线网站 | 亚洲一级片 | 国产成人av一区二区三区在线观看 | 色婷婷视频在线观看 | 中文字幕在线观看免费高清完整版 | 日韩 在线 | 免费国产一区二区视频 | 正在播放国产91 | 亚洲另类久久 | 免费进去里的视频 | 国产成人av综合色 | 久草在线播放视频 | 色综合久久久久综合体桃花网 | 国产三级精品三级在线观看 | 久久爱资源网 | 色噜噜狠狠狠狠色综合久不 | 亚洲色五月| 国产精品国产三级国产aⅴ9色 | 国产在线色视频 | 一区二区三区国产欧美 | 午夜精品一区二区三区在线播放 | 欧美小视频在线 | 中文字幕国内精品 | 中文字幕久久亚洲 | 99久在线精品99re8热视频 | 黄av在线| 成人影音在线 | 最新国产精品拍自在线播放 | 婷婷精品在线视频 | 婷婷六月天丁香 | 欧美黑人性爽 | 91久久奴性调教 | 丁香婷婷色综合亚洲电影 | 国产一区二区在线观看视频 | 亚洲在线 | 国产精品一区二区三区在线看 | 视频在线在亚洲 | 欧美激情第一区 | 91正在播放| 国色天香永久免费 | 精品在线观看免费 | 在线观看国产 | 日日精品 | 亚洲精品网站 | 中文字幕av在线 | 五月婷亚洲 | 国产免费一区二区三区网站免费 | 男女激情麻豆 | 国产精品对白一区二区三区 | 一二三区av | 九九免费在线看完整版 | 成人动漫精品一区二区 | 在线看污网站 | 国产女人18毛片水真多18精品 | 日韩午夜精品福利 | 国产精品久久久久国产精品日日 | 麻豆国产在线视频 | 天天草综合网 | 国产精品资源在线 | 日本公妇色中文字幕 | 亚洲欧美激情插 | 偷拍久久久 | 国产麻豆视频 | 欧美日韩在线观看一区 | 国产一级片网站 | 丝袜+亚洲+另类+欧美+变态 | 一级性生活片 | 亚洲国产网站 | 亚洲成人av电影在线 | 国产一区播放 | 中文av资源站 | 人人干天天干 | 69久久夜色精品国产69 | 久久免费视频精品 | 天堂av最新网址 | 免费看污片 | 久久成年人网站 | 精品国产伦一区二区三区 | 欧美成人h版在线观看 | 国产香蕉97碰碰碰视频在线观看 | 97在线精品| 视频精品一区二区三区 | 亚洲高清久久久 | 欧美日韩国产一区二区三区在线观看 | 美国av大片 | 99久久精品一区二区成人 | 日韩激情网 | 色综合天天天天做夜夜夜夜做 | 精品九九九 | 97超碰超碰 | 99精品久久久久久久 | 国产亚洲视频中文字幕视频 | 国产精品成人在线观看 | 亚洲九九影院 | 四虎国产视频 | 亚洲欧美视频在线播放 | 夜色资源网| 成人av一区二区兰花在线播放 | 中文字幕欧美三区 | 婷婷深爱网 | 久久精品国产免费观看 | 国产精品久久久久av免费 | 天天操天天干天天操天天干 | 天天摸夜夜操 | 婷婷av综合 | 日韩最新在线 | av免费在线观看网站 | 日韩精品一区二区三区电影 | 精品国产成人 | 99久久99久久 | 久久狠狠亚洲综合 | 亚洲综合精品视频 | 91日韩在线| 超碰九九| 欧美精品中文在线免费观看 | 亚洲欧洲成人精品av97 | 91亚洲精品国偷拍 | 又长又大又黑又粗欧美 | 草在线视频 | 日本在线观看中文字幕无线观看 | www日韩视频 | 亚洲精品在线网站 | 日韩欧美xxxx | 国产三级精品在线 | 九月婷婷人人澡人人添人人爽 | 免费能看的黄色片 | 精品久久国产精品 | 久久视频二区 | 黄色精品一区 | 欧美亚洲一区二区在线 | 国产精品美女久久 | 国产日韩欧美在线观看 | 99综合久久 | 17婷婷久久www| 欧美另类tv | 色偷偷av男人天堂 | 国产精品一区二区在线播放 | 成人久久18免费网站麻豆 | 不卡av免费在线观看 | 九九99靖品 | 国产在线观看免费观看 | 免费一级黄色 | 久草青青在线观看 | 色婷婷九月 | 久久久国产成人 | 五月综合激情网 | 日韩精品久久久 | 免费看特级毛片 | 婷婷激情网站 | 欧美午夜理伦三级在线观看 | 人人爽人人澡人人添人人人人 | 97香蕉久久国产在线观看 | 亚洲国产中文字幕在线观看 | 狠狠色综合欧美激情 | 激情综合网婷婷 | 精品国产一区二区三区四区vr | 日日骑 | 日日操天天爽 | 尤物九九久久国产精品的分类 | 久久美女免费视频 | 99产精品成人啪免费网站 | 久久a级片 | 国产麻豆视频在线观看 | 欧美激情综合五月色丁香小说 | 成年人网站免费在线观看 | 天天插天天干天天操 | 久久99久久99免费视频 | 国产视频在线免费观看 | av在线播放一区二区三区 | 中文字幕黄色网 | 丁香六月国产 | 亚洲精品 在线视频 | 亚洲电影自拍 | 五月婷婷综合久久 | 亚洲开心激情 | 国产视频一区二区在线观看 | 亚洲精品国偷自产在线91正片 | 精品美女久久久久久免费 | 伊人狠狠操 | 91久久爱热色涩涩 | 91精品国产91久久久久福利 | 久久精品91久久久久久再现 | 国产免费大片 | 成人小视频在线播放 | 中文字幕五区 | 在线看黄网站 | 久久激情视频 久久 | 人人爽人人爽人人片av免 | 精品在线小视频 | v片在线看 | 97人人澡人人添人人爽超碰 | 久久国产精品影视 | av电影在线免费观看 | 在线观看完整版 | 国产高清在线不卡 | 国产高清在线免费视频 | 国产精品免费视频久久久 | 久久精品精品电影网 | 毛片美女网站 | 特级大胆西西4444www | 在线观看免费av片 | 美女福利视频 | 五月婷久久 | 黄色91在线观看 | 日韩一区二区三 | 亚洲中字幕 | 日日躁夜夜躁aaaaxxxx | 极品久久久久久久 | 亚洲欧洲国产日韩精品 | 激情综合电影网 | 精品一区二区三区香蕉蜜桃 | 欧美一区二区三区四区夜夜大片 | 天天做日日爱夜夜爽 | 日韩在线高清免费视频 | 973理论片235影院9 | 色网站在线看 | 日韩精品亚洲专区在线观看 | 久久免费视频一区 | 在线电影日韩 | 日韩午夜在线观看 | 国产精品九九久久久久久久 | 国产美女在线精品免费观看 | 久久精品视频观看 | 欧美激情视频一二区 | 精品久久久久一区二区国产 | 久久久久久久久电影 | 国产无遮挡又黄又爽馒头漫画 | 亚洲精品乱码白浆高清久久久久久 | 国产黄视频在线观看 | 麻花豆传媒mv在线观看 | 国产福利在线不卡 | 干干日日 | www.91成人 | 麻豆激情电影 | 日韩欧美在线不卡 | 亚洲精品男人天堂 | 一区二区三区四区五区在线 | 天天操操操操操 | 在线不卡a| 在线观看免费91 | 精品美女在线视频 | 98福利在线 | 五月婷婷丁香激情 | 在线免费看黄网站 | 色五婷婷| 成人免费观看视频网站 | 中文字幕超清在线免费 | 欧美日韩精品网站 | 免费看成人av | 亚洲欧美日韩国产 | 国产在线日韩 | 国产91精品一区二区绿帽 | 五月天亚洲婷婷 | 日本黄色片一区二区 | 免费三级黄| 国产在线精品二区 | 中文字幕av在线不卡 | 久久久久福利视频 | 国产乱老熟视频网88av | 久久人人爽人人爽人人片av免费 | 亚洲激情在线观看 | 国内精品亚洲 | 国产免费亚洲 | 中文字幕永久在线 | 黄色a一级片 | 国产 日韩 中文字幕 | 久草网免费 | 91麻豆精品91久久久久同性 | 欧美一区日韩精品 | 成人免费在线视频观看 | 亚洲伊人第一页 | 日韩a级黄色片 | 国产一二区在线观看 | 五月婷婷在线视频观看 | 一区二区三区四区精品视频 | 91麻豆高清视频 | 亚洲乱亚洲乱亚洲 | 少妇性bbb搡bbb爽爽爽欧美 | 日本不卡视频 | 在线亚洲日本 | 在线va视频| 伊人午夜 | 四虎国产精品免费观看视频优播 | av在线免费播放网站 | 婷婷六月色 | 国产在线播放一区 | 久久激情小视频 | 国产福利在线免费观看 | 色av婷婷 | 在线日韩中文字幕 | 蜜臀aⅴ国产精品久久久国产 | 中文字幕在线高清 | 国产精品美女视频 | 欧美精品视 | 日本精品久久久久 | 午夜在线免费观看 | 久久久久国产a免费观看rela | 91精品国产91热久久久做人人 | 亚洲精品午夜久久久久久久 | 天天综合天天做 | 五月激情久久 | 国产精品久久久久久69 | 久久免费视频网站 | 日本在线视频网址 | 欧美淫视频 | 五月婷婷婷婷婷 | 日韩精品中文字幕有码 | 综合久久精品 | 亚洲一区二区三区91 | 在线午夜电影神马影院 | 午夜精品导航 | 亚洲乱码久久 | 99久久久国产精品免费99 | 成人一级在线观看 | 91精彩视频 | 亚洲精品午夜视频 | av电影不卡在线 | 午夜视频亚洲 | 人人澡人人爽欧一区 | 久久久www成人免费毛片麻豆 | 久久综合狠狠 | 天堂在线v | 亚洲aⅴ在线观看 | 在线看片一区 | 亚洲一区二区麻豆 | 国产在线播放一区二区 | 激情电影在线观看 | 四虎国产永久在线精品 | 日韩精品久久一区二区 | 亚洲国产高清在线 | 91传媒91久久久| 免费黄色av电影 | 天天色草 | 天天操夜夜逼 | 久久久久久久久久久免费 | 亚洲伊人av | 九九视频免费观看视频精品 | 日韩成人欧美 | 国内精品国产三级国产aⅴ久 | 91入口在线观看 | 91成人免费电影 | 91在线一区 | 欧美性生活小视频 | 欧美一区二区精美视频 | 国产精品第一页在线观看 | 日日日日干 | 午夜视频免费 | 久久成人午夜 | 免费日韩一区二区 | 国产精品国产三级国产aⅴ入口 | 亚洲九九爱 | 久久精品日产第一区二区三区乱码 | 久久av福利 | 国产青青青 | 久久综合毛片 | 免费看三级黄色片 | 久久人人爽人人爽 | 亚洲精品国产精品久久99热 | 欧美美女激情18p | 国内精品福利视频 | 日本中文字幕高清 | 五月天综合激情 | av免费网站 | 97精品国产一二三产区 | 特黄免费av | 国产成人中文字幕 | 亚洲春色成人 | 国产男女免费完整视频 | 91成品视频 | 友田真希av | 国产精彩视频一区 | 国产精品区免费视频 | 天天综合网~永久入口 | 亚洲欧美日韩在线一区二区 | 日日躁夜夜躁aaaaxxxx | 美女视频永久黄网站免费观看国产 | 日本久久高清视频 | 91视视频在线直接观看在线看网页在线看 | 在线观看亚洲 | 亚洲高清色综合 | 日韩精品视频久久 | 国产.精品.日韩.另类.中文.在线.播放 | 国产精品24小时在线观看 | 中文字幕在线播放一区 | 久久五月情影视 | 欧美精品久久久久久久久老牛影院 | 国产美女免费视频 | 97香蕉久久国产在线观看 | 亚州国产视频 | 国产69精品久久app免费版 | 亚洲丝袜一区二区 | 亚洲美女在线国产 | 波多野结衣在线视频一区 | 懂色av懂色av粉嫩av分享吧 | 手机看片中文字幕 | 日韩高清免费无专码区 | 国产99久久九九精品免费 | 欧美日韩啪啪 | 美女黄濒 | 欧美日韩国产伦理 | 中文字幕在线不卡国产视频 | 亚州黄色一级 | 五月综合婷 | 黄色软件网站在线观看 | 欧美日韩久久不卡 | 日韩精品免费在线播放 | 六月丁香激情综合色啪小说 | 99久久日韩精品视频免费在线观看 | 伊人射 | 亚洲免费av在线播放 | 国产69精品久久99不卡的观看体验 | 97在线观看免费视频 | 亚洲国产精品成人女人久久 | 午夜视频在线观看网站 | 国产精品免费观看国产网曝瓜 | 免费观看av | 激情综合一区 | 欧美一级黄大片 | 人人藻人人澡人人爽 | 国产视频亚洲精品 | 激情六月婷婷久久 | 亚洲精品一区二区在线观看 | 国产精品人成电影在线观看 | 在线视频中文字幕一区 | 欧美国产日韩在线视频 | 一本一本久久a久久精品综合妖精 | 国产伦理一区二区三区 | 欧美激情综合五月色丁香 | 日日日天天天 | 久久久久久美女 | 五月天亚洲综合 | www.夜夜爱 | 又湿又紧又大又爽a视频国产 | 81国产精品久久久久久久久久 | www日韩视频 | 国产精品视频免费在线观看 | 日韩一级黄色大片 | 欧美日韩高清在线一区 | 四虎www| 日韩一区二区免费播放 | 日韩免费不卡av | 亚洲一级黄色片 | 精品国产亚洲日本 | 欧美日韩后 | 99视频国产精品免费观看 | 国产成人精品aaa | 韩国在线一区二区 | 波多野结衣日韩 | 免费a级黄色毛片 | 亚洲一区二区视频 | 婷婷夜夜| 人人爽人人乐 | 在线观看视频国产 | 精品美女久久久久 | 亚洲免费观看在线视频 | 国产91免费在线观看 | 亚洲精品影视 | 国产中文字幕久久 | 免费看十八岁美女 | 一级黄色a视频 | 国产一区久久 | 精品国产免费看 | 美女国内精品自产拍在线播放 | 热久在线 | 中日韩欧美精彩视频 | 操操日| 97精品国产aⅴ | 色九九影院| 亚洲欧美视频在线播放 | 日韩免费av在线 | 色狠狠一区二区 | 麻豆va一区二区三区久久浪 | 欧美精品久久久久久久久老牛影院 | 92国产精品久久久久首页 | 99re亚洲国产精品 | 久久久这里有精品 | 久久欧美综合 | 成人免费在线电影 | 日韩成人黄色av | 日日夜夜综合网 | 天天干,天天操 | 天天操天天色天天射 | 久久久精品国产一区二区 | 五月婷婷影院 | 日日夜夜人人天天 | 在线观看亚洲电影 | 97精品国产 | 日韩av成人在线观看 | 手机看片国产日韩 | 亚州欧美视频 | 色小说在线 |