激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類(lèi)導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - 詳解C++編程中一元運(yùn)算符的重載

詳解C++編程中一元運(yùn)算符的重載

2020-08-06 12:04腳本之家 Python

這篇文章主要介紹了C++編程中一元運(yùn)算符的重載,特別對(duì)遞增和遞減運(yùn)算符重載作了著重講解,需要的朋友可以參考下

可重載的一元運(yùn)算符如下:

  1. !(邏輯“非”)
  2. &(取址)
  3. ~(二進(jìn)制反碼)
  4. *(取消指針引用)
  5. +(一元加)
  6. -(一元求反)
  7. ++(遞增)
  8. --(遞減)
  9. 轉(zhuǎn)換運(yùn)算符

后綴遞增和遞減運(yùn)算符(++ 和 ––)在遞增和遞減中單獨(dú)處理,下面會(huì)講到。

以下規(guī)則適用于所有其他一元運(yùn)算符。若要將一元運(yùn)算符函數(shù)聲明為非靜態(tài)成員,則必須用以下形式聲明它:
ret-type operator op ()
其中 ret-type 是返回類(lèi)型,op 是上表中列出的運(yùn)算符之一。
若要將一元運(yùn)算符函數(shù)聲明為全局函數(shù),則必須用以下形式聲明它:
ret-type operator op (arg )
其中 ret-type 和 op 如上所述用于成員運(yùn)算符函數(shù),arg 是要參與運(yùn)算的類(lèi)類(lèi)型的參數(shù)。
注意
一元運(yùn)算符的返回類(lèi)型沒(méi)有限制。例如,邏輯“非”(!) 返回整數(shù)值是合理的,但并非強(qiáng)制性的。

遞增和遞減運(yùn)算符重載
由于遞增和遞減運(yùn)算符各有兩個(gè)變量,因此它們屬于一個(gè)特殊類(lèi)別:

  • 前置遞增和后置遞增
  • 前置遞減和后置遞減

編寫(xiě)重載的運(yùn)算符函數(shù)時(shí),為這些運(yùn)算符的前綴和后綴版本實(shí)現(xiàn)單獨(dú)的版本很有用。若要區(qū)分這兩者,請(qǐng)遵循以下規(guī)則:運(yùn)算符的前綴形式與聲明任何其他一元運(yùn)算符的方式完全相同;后綴形式接受 int 類(lèi)型的其他參數(shù)。

注意
當(dāng)為遞增或遞減運(yùn)算符的前綴形式指定重載運(yùn)算符時(shí),其他參數(shù)的類(lèi)型必須是 int;指定任何其他類(lèi)型都將產(chǎn)生錯(cuò)誤。
以下示例顯示如何為 Point 類(lèi)定義前綴和后綴遞增和遞減運(yùn)算符:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// increment_and_decrement1.cpp
class Point
{
public:
  // Declare prefix and postfix increment operators.
  Point& operator++();    // Prefix increment operator.
  Point operator++(int);   // Postfix increment operator.
 
  // Declare prefix and postfix decrement operators.
  Point& operator--();    // Prefix decrement operator.
  Point operator--(int);   // Postfix decrement operator.
 
  // Define default constructor.
  Point() { _x = _y = 0; }
 
  // Define accessor functions.
  int x() { return _x; }
  int y() { return _y; }
private:
  int _x, _y;
};
 
// Define prefix increment operator.
Point& Point::operator++()
{
  _x++;
  _y++;
  return *this;
}
 
// Define postfix increment operator.
Point Point::operator++(int)
{
  Point temp = *this;
  ++*this;
  return temp;
}
 
// Define prefix decrement operator.
Point& Point::operator--()
{
  _x--;
  _y--;
  return *this;
}
 
// Define postfix decrement operator.
Point Point::operator--(int)
{
  Point temp = *this;
  --*this;
  return temp;
}
int main()
{
}

可使用以下函數(shù)頭在文件范圍中(全局)定義同一運(yùn)算符:

?
1
2
3
4
friend Point& operator++( Point& )   // Prefix increment
friend Point& operator++( Point&, int ) // Postfix increment
friend Point& operator--( Point& )   // Prefix decrement
friend Point& operator--( Point&, int ) // Postfix decrement

表示遞增或遞減運(yùn)算符的后綴形式的 int 類(lèi)型的參數(shù)不常用于傳遞參數(shù)。它通常包含值 0。但是,可按以下方式使用它:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// increment_and_decrement2.cpp
class Int
{
public:
  Int &operator++( int n );
private:
  int _i;
};
 
Int& Int::operator++( int n )
{
  if( n != 0 )  // Handle case where an argument is passed.
    _i += n;
  else
    _i++;    // Handle case where no argument is passed.
  return *this;
}
int main()
{
  Int i;
  i.operator++( 25 ); // Increment by 25.
}

除顯式調(diào)用之外,沒(méi)有針對(duì)使用遞增或遞減運(yùn)算符來(lái)傳遞這些值的語(yǔ)法,如前面的代碼所示。實(shí)現(xiàn)此功能的更直接的方法是重載加法/賦值運(yùn)算符 (+=)。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产精品一区在线观看 | 大逼逼影院 | 国产乱淫av片免费 | 国产免费观看电影网站 | 国产第一页精品 | 久久久精彩 | 中文欧美日韩 | 国产精品久久久久国产精品三级 | 国产午夜精品一区二区三区不卡 | 羞羞草视频 | 999插插插 | 偿还电影免费看 | 毛片午夜 | 最新日本中文字幕在线观看 | 欧美一级淫片免费播放口 | 久久色网站| 性 毛片 | 青青青在线免费 | japan护士性xxxⅹhd | 日韩美香港a一级毛片免费 欧美一级淫片007 | 久久久经典视频 | 国产一级在线看 | 一区播放 | 国产日韩久久久久69影院 | 国产一区二区三区四区在线 | 蜜桃网站在线观看 | 亚洲第一成人久久网站 | 青青草成人影视 | 特级西西444www大精品视频免费看 | 毛片一级网站 | 噜噜色av| 神马久久精品综合 | 欧洲精品久久久 | 91久久极品少妇韩国 | 九九热国产视频 | 99亚洲| 国产亚洲精品成人a | 国产成人在线网址 | 91短视频版高清在线观看免费 | 久久国产精品久久久久久 | 中文字幕欧美日韩 |