對(duì)于C++操作符淺析說明
以下介紹一段C++操作符關(guān)于操作符重載的程序,讓它將變量遞增10而不是遞增1,操作符過載是個(gè)高級(jí)C++技術(shù),在使用時(shí)一定會(huì)使許多編程人員頭花眼脹的,好了看了本文你就會(huì)解決這些事情。
如下表所示。常用C++操作符說明舉例:
- + 加 x=y+z;
- - 減 x=y-z;
- * 乘 x=y*z;
- / 除 x=y/z;
- 賦值運(yùn)算符
- = 賦值 x=10;
- += 賦值與和 x+=10;(等于xx=x+10;)
- -= 賦值與減 x-=10;
- *= 賦值與乘 x*=10;
- \= 賦值與除 x\=10;
- &= 賦值位與 x&=0x02;
- |= 賦值位或 x|=0x02;
- 邏輯操作符
- && 邏輯與 if(x && 0xFF) {...}
- || 邏輯或 if(x || 0xFF) {...}
- 等式操作符
- == 等于 if(x == 10) {...}
- != 不等于 if(x != 10) {...}
- < 小于 if(x < 10) {...}
- > 大于 if(x > 10) {...}
- <= 小于或等于 if(x <= 10) {...}
- >= 大于或等于 if(x >= 10) {...}
- 一元操作符
- * 間接操作符 int x=*y;
- & 地址操作符 int* x=&y;
- ~ 位非 x &=~0x02;
- ! 邏輯非 if(!valid) {...}
- ++ 遞增操作符 x++(等于xx=x+1;)
- -- 遞減操作符 x--;
- 類和結(jié)構(gòu)操作符
- :: 范圍解析 MyClass :: SomeFunction();
- -> 間接成員 MyClass-> SomeFunction();
- · 直接成員 MyClass . SomeFunction();
可以看出,這個(gè)清單長(zhǎng)了些,沒法一下子記住。使用C++時(shí),你會(huì)慢慢熟悉這些操作符的。必須指出,遞增操作符既可用作前遞增(++x),也可用作后遞增(x++)。前遞增操作符告訴編譯器先遞增再使用變量,而后遞增C++操作符則讓編譯器先使用變量值再遞增。例如下列代碼:
- int x = 10;
- cout << "x = " << x++ << end1;
- cout << "x = " << x << end1;
- cout << "x = " x << end1;
- cout << "x = " << ++x << end1;
- x=10
- x=11
- x=12
- x=12
遞減操作符也是這樣,這里不想將這些內(nèi)容講得太深,但讀者可以耐心閱讀下去,正如彭茲對(duì)奧古斯特所說,“奧古,耐心點(diǎn),羅馬不是一天建成的”。說明 在C++中操作符可以過載(overload)。
編程人員可以通過過載標(biāo)準(zhǔn)操作符讓它在特定類中進(jìn)行特定運(yùn)行。例如,可以在一個(gè)類中過載遞增操作符,讓它將變量遞增10而不是遞增1。操作符過載是個(gè)高級(jí)C++技術(shù),本書不準(zhǔn)備詳細(xì)介紹。
你也許會(huì)發(fā)現(xiàn),有些操作符使用了相同的符號(hào)。符號(hào)的意義隨情境的不同而不同。例如,星號(hào)(*)可以作為乘號(hào)、聲明指針或取消指針引用。這初看起來有點(diǎn)亂,事實(shí)上,C++編程老手有時(shí)也覺得有點(diǎn)亂。多實(shí)踐,你會(huì)慢慢適應(yīng)的。本書有許多例子介紹這些C++操作符。讀者不必死記每個(gè)操作符的作用,而可以在學(xué)習(xí)中通過程序和碼段去理解其作用。
C++中的函數(shù)
函數(shù)是與主程序分開的碼段。這些碼段在程序中需要進(jìn)行特定動(dòng)作時(shí)調(diào)用(執(zhí)行)。例如,函數(shù)可能取兩個(gè)值并對(duì)其進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算。然后返回結(jié)果,函數(shù)可能取一個(gè)字串進(jìn)行分析,然后返回分析字串的一部分。
新術(shù)語 函數(shù)(function)是與主程序分開的碼段,進(jìn)行預(yù)定的一個(gè)服務(wù)。函數(shù)是各種編程語言的重要部分,C++也不例外。最簡(jiǎn)單的函數(shù)不帶參數(shù),返回void(表示不返回任何東西),其它函數(shù)可能帶一個(gè)或幾個(gè)參數(shù)并可能返回一個(gè)值。函數(shù)名規(guī)則與變量名相同。圖1.5顯示了函數(shù)的構(gòu)成部分。新術(shù)語 參數(shù)(parameter)是傳遞給函數(shù)的值,用于改變操作或指示操作程度。 #t#
這個(gè)程序的11到14行用標(biāo)準(zhǔn)輸入流cin向用戶取兩個(gè)數(shù)字,第15行調(diào)用multiply()函數(shù)將兩個(gè)數(shù)相乘,第16行調(diào)用showResult()函數(shù)顯示相乘的結(jié)果。注意主程序前面第5和第6行C++操作符的原型聲明。原型中只列出了返回類型、函數(shù)名和函數(shù)參數(shù)的數(shù)據(jù)類型。
這是函數(shù)聲明的最基本要求。函數(shù)原型中還可以包含用于建檔函數(shù)功能的變量名。例如,multiply()函數(shù)的函數(shù)聲明可以寫成如下:int multiply(int firstNumber,int secondNumber);這里函數(shù)multiply()的作用很明顯,但代碼既可通過說明也可通過代碼本身建檔。注意清單1.4中函數(shù)multiply()的定義(22到25行)在主函數(shù)定義碼段(8到20行)之外。