天天看點

C++内聯函數,作用域運算符 ::

内聯函數(有時稱線上函數或編譯時期展開函數):顧名思義,也就是說建議編譯器将指定的函數體插入并取代每一處調用該函數的地方,進而節省每次調用函數帶來的額外時間開支。以下将會詳細舉例

内聯函數

定義函數之前冠以關鍵字inline,如下

#include "iostream"
using namespace std;
inline double complex(double i1,double j1)	//定義内聯函數計算複數
{
	double t;
	t = i1*i1+ j1*j1;
	return sqrt(t);
}
int main ()
{	
	double comp;
	i = 1.1;
	j = 2.2;
	comp=complex(i,j);
	cout << " comp =  " << comp << endl ;
}
           
  • 有沒有inline的差別如下圖
沒有用inline的一般函數
C++内聯函數,作用域運算符 ::
用了inline的内聯函數。
C++内聯函數,作用域運算符 ::
  • 結果顯而易見,内聯函數能夠更快捷的得到結果,當然内聯函數隻能用于規模很小,使用頻繁的函數。

作用域運算符::

在C++中局部變量在其作用域内具有較高的優先權,它将屏蔽全局變量。為了能在局部函數中使用全局同名變量,我們可以使用作用域運算符

舉例:

#include "iostream"
using namespace std;
int mougai = 666;
int main()
{	
	int mougai = 250;
	cout <<  " mougai = "  << mougai << endl ;
	return 0;
}
//運作結果為:mougai = 250  全局變量優先級低于局部變量

#include "iostream"
using namespace std;
int mougai = 666;
int main()
{
	int mougai = 250 ;
	cout << "mougai = "<<::mougai<<endl;
}
//運作結果:mougai = 666;這次的結果擷取的就是全局變量mougai的值。
           

繼續閱讀