1. 程式人生 > >第七章 習題

第七章 習題

一、名詞解釋

函式模板:一個帶類屬引數的函式;

類模板:一個帶類屬引數的類;

模板函式:通過引數例項化可以再構造出具體的函式;

模板類:通過引數例項化可以再構造出具體的類;

二、填空題

(1)C++支援兩種模板,一種是   函式模板       ,另一種是     類模板     

(2)關鍵字   template  是定義模板的關鍵字。

(3)<模板引數表>中包含一個或多個用逗號分開的模板引數項,每項由保留字   class    或者    typename    開始。

(4)過載函式模板便於定義  類屬引數   或者函式引數的型別、個數不相同所進行的   類似  操作。

(5)函式模板例項化時, 沒有

   普通傳值引數的型別轉換機制。

(6)STL  提供的容器是常用資料結構 的    類模板    

(7)STL   容器類庫中包含7種基本容器。它們可以分成兩個組:   順序容器      關聯容器  

(8)STL    迭代器主要包括5中基本類別:   輸入迭代器    輸出迭代器    、  前向迭代器  雙向迭代器    和   隨機訪問迭代器 

三、選擇題(至少選一個,可以多選)
 (1)關於函式模板,描述錯誤的是( A )

   A.函式模板必須由程式設計師例項化為可執行的模板函式

   B.函式模板的例項化由編輯器實現

   C.一個類定義中,只要有一個函式模板,則這個類是類模板

   D.類模板的成員雨數都是函式模板,類模板例項化後,成員函式也隨之例項化

(2)下列的模板說明中,正確的是(   A  )

     A.  template <typename T1,typename T2>               B. template <class T1,T2>

     C. template(classT1,classT2)                                        D. template (typenameT1, T2)
(3)假設有函式模板定如下:
      template Ctypename TS
      Nax(T a.T b.T Sc)
      {c=a+ b;}
  下列選項正確的是(  A  B )

    A. float x,y;float z;                        B. int x,y,z;                   C. int x,y;float z;                  D.flat x;double y,z;

       Max(x,y,z);                                     Max(x,y,z);                     Max(x,y,z);                           Max(x,y,z);

(4)建立類模板物件的例項化過程為(   C   )。
              A.基類——派生類                                                                   B.建構函式——物件
              C.模板類——物件                                                                   D.模板類——模板函式
(5)下面(  A B D  )是標準模板庫中的主要元件。

        A.容器                     B.迭代器                     C.檔案                      D.演算法

四、判斷題

(1)一個模板函式能夠被相同函式名的另外模板函式過載。                                                                          (對)

(2)作為模板型別引數的關鍵字class,特別含義是“任何使用者定義類的型別”。                                             (錯)

(3)在類模板的<模板引數表>中,必須至少有一個類引數。                                                                        (對)

(4)在類模板的<模板引數表>中,可以使用函式型別引數,該引數與普通函式引數的用法和功效完全相同。    (錯)

(5)迭代器就是我們平時所用的指標。                                                                                                         (錯)

五、程式設計題
(1)用函式模板實現求整數實數平方根的程式。

(2)設計一個類模板,然後將該類模板例項化為整數型和字元觀類。利用類模板的成員函式為其資料成員賦值,並顯示所賦給的值。