大學C++課堂知識點(第四期之作用域運算子、強制型別轉換)
阿新 • • 發佈:2018-12-21
哈哈哈,終於想起來我的CDSN的密碼了(才不是為這些天沒更新找藉口,╭(╯^╰)╮)
一、作用域運算子 ::
就是後面那兩個冒號哈,對的,沒錯,就叫做作用域運算子。
這倆個冒號就厲害嘞,他可以把區域性變數變成全域性變數。
咳咳~,官方解釋就是:如果有兩個同名變數,一個是全域性的,另一個是區域性的,那麼區域性變數在作用域內具有較高的優先權,它將遮蔽全域性變數。
話不多說,上例子:
全域性變數和區域性變數同名: #include <iostream> using namespace std; int avar=10; //全域性變數 int main () { int avar; //區域性變數 avar=25; cout<<"avar is "<<avar<<endl; return 0; }
在VC中輸出結果如下:
avar is 25
Press any key to continue
由此可見,是main函式裡面的區域性變數的值輸出了。所以區域性變數的優先順序大於全域性變數。
那麼,我要使用作用域運算子,該如何用呢?
我們來看下面的例子:
#include<iostream> using namespace std; int avar; int main() { int avar; avar=11; ::avar=10; cout<<"區域性變數是"<<avar<<endl; cout<<"全域性變數是"<<::avar<<endl; return 0; }
VC執行結果是:
區域性變數是11
全域性變數是10
Press any key to continue
二、強制型別轉換
就是資料型別之間的轉換。
在C中,一般是這個樣子的:
int i=10;
double x=(doble)i;
C++ 作為擴充,當然支援C中的表達方式啦,不過C++ 中,又多了一個形式:
C++中相比C,就把位置換了一下,看起來像函式呼叫那麼回事:
int 1=10;
double x=double(i);
不過,在C ++ 中,推薦後者哦!
好了,C++ 的基礎部分終於碼完了,接下來的一期就是開始進入有C++ 風格的程式碼了。