c++筆記4

11.cerr 標準錯誤流,和cout相比,cerr的輸出沒有緩衝,cout是把一句話一句話的輸出,而cerr一個字符一個字符的輸出。

測試:

#include<iostream>
using namespace std;
void main()
{
	cout<<"hello this is cout"<<endl;
	cerr<<"hello this is cerr"<<endl;
}

12.連續的case之間如果沒有語句那麼執行下一個有語句的case的語句。

比如:

switch(a)
{
case 1:
case 2:a++;
}
相當於
switch(a)
{
case 1:a++;
case 2:a++;

13.自動變量:具有自動存儲器的變量,局部變量默認是自動變量。

自動存儲器:程序執行到他們的語句塊時被創建,一般作用域是離他最近的花括號。

14.將頻繁使用的變量用register聲明,以建議編譯器將變量存儲在計算機的高速寄存器中,減小開銷,一般放在自動變量聲明的前面,但現在優化的編譯器大多可以自動識別哪些變量被頻繁使用,不需要regiser聲明。

15.static聲明的局部變量僅被其聲明的函數所知,但是和自動變量不同的是,函數退出後仍然保留了他的值,等下次調用直接使用這個值,而不用重新賦值。

16.c++中可以使用::number來訪問全局變量,前提是局部變量和全局變量的名字一樣。

17.函數重載不能只是返回的類型不同,形參個數或者類型也必須不同。

18.函數模板,與函數重載的區別是,如果不同數據類型的操作一樣,那就用模板,如果不一樣,那就函數重載。

#include<iostream>
using namespace std;

template <class T>
T max(T a,T b,T c)
{
	T maxi;
	maxi=a;
	if(b>maxi)
	{
		maxi=b;
	}
	if(c>maxi)
	{
		maxi=c;
	}
	return maxi;
}
void main()
{
	int a=1;
	int b=2;
	int c=3;
	int ma;
	ma=max(a,b,c);
	cout<<ma<<endl;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章