1樓:天涼秋夜
c++中的<>代表c++模板。
模板是c++支援引數化多型的工具,使用
模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別。
c++語言是一種物件導向的強型別語言,由at&t的bell實驗室於2023年推出。c++語言是c語言的一個向上相容的擴充。c++是一種支援多範型的程式設計語言,它既支援物件導向的程式設計,也支援程序導向的程式設計。
c++支援基本的物件導向概念:物件、類、方法、訊息、子類和繼承。
2樓:匿名使用者
c++模板
模板是c++支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別。
模板是一種對型別進行引數化的工具;
通常有兩種形式:函式模板和類别範本;
函式模板針對僅引數型別不同的函式;
類别範本針對僅資料成員和成員函式型別不同的類。
使用模板的目的就是能夠讓程式設計師編寫與型別無關的**。比如編寫了一個交換兩個整型int 型別的swap函式,這個函式就只能實現int 型,對double,字元這些型別無法實現,要實現這些型別的交換就要重新編寫另一個swap函式。使用模板的目的就是要讓這程式的實現與型別無關,比如一個swap模板函式,即可以實現int 型,又可以實現double型的交換。
模板可以應用於函式和類。下面分別介紹。
注意:模板的宣告或定義只能在全域性,名稱空間或類範圍內進行。即不能在區域性範圍,函式內進行,比如不能在main函式中宣告或定義一個模板。
一、函式模板通式
1、函式模板的格式:
template
返回型別 函式名(引數列表)
其中template和class是關見字,class可以用typename 關見字代替,在這裡typename 和class沒區別,<>括號中的引數叫模板形參,模板形參和函式形參很相像,模板形參不能為空。一但宣告瞭模板函式就可以用模板函式的形參名宣告類中的成員變數和成員函式,即可以在該函式中使用內建型別的地方都可以使用模板形參名。模板形參需要呼叫該模板函式時提供的模板實參來初始化模板形參,一旦編譯器確定了實際的模板實參型別就稱他例項化了函式模板的一個例項。
比如swap的模板函式形式為
template void swap(t& a, t& b){},
當呼叫這樣的模板函式時型別t就會被被呼叫時的型別所代替,比如swap(a,b)其中a和b是int 型,這時模板函式swap中的形參t就會被int 所代替,模板函式就變為swap(int &a, int &b)。而當swap(c,d)其中c和d是double型別時,模板函式會被替換為swap(double &a, double &b),這樣就實現了函式的實現與型別無關的**。
2、注意:對於函式模板而言不存在 h(int,int) 這樣的呼叫,不能在函式呼叫的引數中指定模板形參的型別,對函式模板的呼叫應使用實參推演來進行,即只能進行 h(2,3) 這樣的呼叫,或者int a, b; h(a,b)。
二、類别範本通式
1、類别範本的格式為:
template
class 類名
;類别範本和函式模板都是以template開始後接模板形參列表組成,模板形參不能為空,一但宣告瞭類别範本就可以用類别範本的形參名宣告類中的成員變數和成員函式,即可以在類中使用內建型別的地方都可以使用模板形參名來宣告。比如
templateclass a;
在類a中宣告瞭兩個型別為t的成員變數a和b,還宣告瞭一個返回型別為t帶兩個引數型別為t的函式hy。
2、類别範本物件的建立:比如一個模板類a,則使用類别範本建立物件的方法為am;在類a後面跟上一個<>尖括號並在裡面填上相應的型別,這樣的話類a中凡是用到模板形參的地方都會被int 所代替。當類别範本有兩個模板形參時建立物件的方法為am;型別之間用逗號隔開。
3、對於類别範本,模板形參的型別必須在類名後的尖括號中明確指定。比如a<2> m;用這種方法把模板形參設定為int是錯誤的(編譯錯誤:error c2079:
'a' uses undefined class 'a'),類别範本形參不存在實參推演的問題。也就是說不能把整型值2推演為int 型傳遞給模板形參。要把類别範本形參調置為int 型必須這樣指定am。
4、在類别範本外部定義成員函式的方法為:
template《模板形參列表》 函式返回型別 類名《模板形參名》::函式名(引數列表),
比如有兩個模板形參t1,t2的類a中含有一個void h()函式,則定義該函式的語法為:
templatevoid a::h(){}。
注意:當在類外面定義類的成員時template後面的模板形參應與要定義的類的模板形參一致。
5、再次提醒注意:模板的宣告或定義只能在全域性,名稱空間或類範圍內進行。即不能在區域性範圍,函式內進行,比如不能在main函式中宣告或定義一個模板。
3樓:匿名使用者
這個<>是用來寫指令的,比如hallowork
c++裡面」>>「和」<<「各是什麼意思?
4樓:匿名使用者
《和》在c中是用來做位運算的,在c++中被過載了,即可以做位運算也可以做輸入輸出zhi流。
區別如下:
1、應用場合不同:
c語言是結構化和模組化的語言,是程序導向的。當程式的規模較小時,c語言運用起來得心應手。但是當問題比較複雜、程式的規模比較大的時候,c語言就會展現出它的侷限性;
正是因為有大規模的程式需要去處理,c++就應運而生了。c++是由c發展而來的,與c語言相容。c++既可用於程序導向的結構化程式設計,也可用於物件導向的程式設計,是一種功能強大的混合型的程式設計語言。
2、輸入/輸出函式不同:
c語言
取地址,輸入a的值,%d和%f稱為格式說明符,表示以此格式輸出對應表示式的值,\n表示換行。%6.3f中的6表示佔六列,表示輸出對應浮點表示式值時只輸出三位小數。
c++:int a=5;float b;cout << "a=">b;cout必須要和」<<「一起使用,cin必須要和」>>「一起使用。得c++中的輸入輸出流是很強大的,不像c裡面還要指定格式,endl表示換行。
5樓:匿名使用者
「>>、<<」除了 cin>> 輸入流;cout《輸出流 的意思外
還有另一個是:>>向右位移、《向左位移;就是一個整數,如10,二進位制為1010,向右位移一位就是0101,既是10>>1=5,
不知道樓主是不是想知道這個
6樓:匿名使用者
輸入輸出流以及位移運算
int m = (t[k].l + t[k].r)>>1;
這裡是位右移運算。 指兩個變數之和然後位右移1個bit。其實相當於除以了2
7樓:匿名使用者
連起來跟沒寫這兩個字元是一樣的意思,取了地址&相當於引用,*是解引用,就是取內容,所以這兩個操作符連在一起就相當於什麼也沒做,還是p。
8樓:設計人生
輸入流和輸出流也可以理解提取和插入的意思。
9樓:灰翼之殤
1樓說反了
>>是輸入流符號
《是輸出流符號
可以用於控制檯輸入輸出,也可以用於檔案輸入輸出,輸入輸出是相對於程式來說
10樓:オフ憂
cin>> 輸入流;cout《輸出流
11樓:匿名使用者
下面那個是左移和右移
12樓:匿名使用者
>>是輸入符,《是輸出
13樓:匿名使用者
「>>」,
「<<」是二元運算子,是進行位操作(二進位制)的,與「!」,「~」,「&」,「|」,「^」類似,分別表示「右移」,「左移」,例如:
0b000001 << 5 為 0b1000000b001000 >> 2 為 0b000010但在標頭檔案「iostream」中被過載為流操作運算子。
在c++中「<<=」是什麼意思?
14樓:旗五阿哥
一、釋義:
是不等於號的意思。如 if(c != 2){}//判斷 c 不等於 2 。
二、c++是一種物件導向的計算機程式版設計語言,由美國權at&t貝爾實驗室的本賈尼·斯特勞斯特盧普博士在20世紀80年代初期發明並實現(最初這種語言被稱作「c with classes」帶類的c)。它是一種靜態資料型別檢查的、支援多重程式設計正規化的通用程式設計語言。它支援過程化程式設計、資料抽象、物件導向程式設計、泛型程式設計等多種程式設計風格。
c++是c語言的繼承,進一步擴充和完善了c語言,成為一種物件導向的程式設計語言。c++這個詞在中國大陸的程式設計師圈子中通常被讀做「c加加」,而西方的程式設計師通常讀做「cplusplus」,「cpp」。
15樓:匿名使用者
「<<」是位移運算子
a<<=b的意思是a=a<