程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ Builder 初學問與答(十七)

C++ Builder 初學問與答(十七)

編輯:C++入門知識
  7)Set類如何用?
  
  答:嚴格來說,CB的集合(Set)並不是一個類,而是一個類模板(Class Template)。它用來實現集合這個抽象數據類型。
  
  使用它可以定義一個實際的集合類型,它的一般聲明模式是這樣的:
  

  
     typedef Set<type,minval,maxval>ClassName;   其中type用來指定集合元素的類型;minval指定集合元素的最小值;maxval指定集合元素的最大值。
  
  舉個例子來說,若是我們定義一個以TupperSet為名的集合類,這個集合類的可能元素為26個大寫字母,我們可以這樣定義:
     typedef Set<char,’A’,’Z’>TupperSet;
  應用時我們可以使用這個集合類聲明一個具體的集合對象,如:
     TupperSet UpperSet;
  8)能不能告訴我一下Set類有哪些常見的使用方法或操作符?
  
  答:當然可以了,以下是它的一些常見操作符和方法:
  
  Clear方法:清除集合對象內的所有元素,使集合成為空集;
  
  Contains方法:查詢集合中是否包含指定的元素,其聲明為:
     bool _fastcall Contains(const T el)const;
  operator-:兩個集合進行求差運算,結果集合包含兩個集合中不相同的元素;
  operator*:求兩個集合的交集;
  operator+:求兩個集合的並集;
  operator<<:添加一個元素到指定集合;
  operator>>:從集合中刪除一個指定元素。
  其實Set類的應該比較廣泛,比如判定我們是否按下鼠標左鍵,可以用如下的語句:
  if(Shift.Contains(ssLeft))。  
  9)聽說在CB中有一個可以定時觸發的組件,能否介紹一下它的屬性和事件嗎?
  
  答:你說的是Timer組件,它位於組件欄的System組件頁中。使用它並不難,因為他的屬性、事件非凡少:
  
  Enabled屬性:布爾類型。缺省時為true,這時定時器將經過一段時間就觸發OnTimer事件。在這個屬性從false變為true時,時鐘將重新開始計時。
  
  Interval屬性:這個屬性用來設置每隔多長時間就觸發一次OnTimer事件,以毫秒為單位。缺省為1000毫秒。
  
  OnTimer事件:這個事件在Enabled屬性設置為true時,每隔Interval屬性指定的時間觸發一次。
  
  10)原來Timer組件如此簡單,但我還有些不懂為什麼說它是一個可找替循環語句,能否舉一個例子說明下OnTimer事件?
  
  答:它不能取替循環語句的,當然在特定條件下,他比循環語句更有效,尤其是在涉及到按時循環時。在我編寫的春輝網絡電視裡有一段OnTimer事件代碼,可供大家參考:
     void __fastcall TForm1::Timer1Timer(TObject *Sender)
  {
  String s1="春輝(CH)軟件   作者:董維春  王巖   CH工作室";
  if(i<=54)
  {
  Label1->Caption=s1.SubString(i,18);
  i+=2;
  }
  else
  {
  i=1;
  }
  }
  (未完待續)   更多內容請看C/C++技術專題專題,或
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved