锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久人人爽人人爽爽久久,亚洲第一精品在线,欧美日韩免费一区二区三区http://www.shnenglu.com/bloodsuck/category/1859.html鐜╃帺zh-cnWed, 03 Jun 2009 11:22:17 GMTWed, 03 Jun 2009 11:22:17 GMT601涓煭灝忕殑瀹炰緥錛屾樉紺烘瀯寤哄拰涓簭閬嶅巻2鍙夋煡鎵炬爲http://www.shnenglu.com/bloodsuck/archive/2009/05/13/82842.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Wed, 13 May 2009 09:21:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2009/05/13/82842.htmlhttp://www.shnenglu.com/bloodsuck/comments/82842.htmlhttp://www.shnenglu.com/bloodsuck/archive/2009/05/13/82842.html#Feedback0http://www.shnenglu.com/bloodsuck/comments/commentRss/82842.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/82842.html 

 

  1#include "stdafx.h"
  2#include <iostream>
  3using namespace std;
  4
  5template <typename T>
  6class BinarySearchTree
  7{
  8 friend  ostream& operator<<(ostream& , BinarySearchTree<T>& );
  9public:
 10 BinarySearchTree();
 11 void insert(const T );
 12 void midvisit()
 13 {
 14
 15  midvisit(root);
 16 }

 17   
 18protected:
 19
 20private:
 21 class TNode
 22 {
 23  friend class BinarySearchTree;
 24 public:
 25  TNode(T a)
 26   :data(a),
 27   left(NULL),
 28   right(NULL)
 29  {
 30
 31  }

 32 protected:
 33 private:
 34  T data;
 35  TNode* left;
 36  TNode* right;
 37 }
;
 38 void insert(const T ,TNode*&);
 39 void midvisit(TNode* x)
 40 {
 41  if (x==NULL)
 42  {
 43   return;
 44  }

 45  midvisit(x->left);
 46  cout<<x->data;
 47  midvisit(x->right);
 48
 49 }

 50TNode* root;
 51
 52
 53}
;
 54template<typename T2>
 55ostream& operator<<(ostream& os, BinarySearchTree<T2>& a)
 56{
 57    
 58
 59}

 60template<typename T>
 61BinarySearchTree<T>::BinarySearchTree()
 62{
 63
 64root=NULL;
 65}

 66template<typename T>
 67void BinarySearchTree<T>::insert(const T a,TNode*& t)
 68{
 69    if (t==NULL)
 70    {
 71  t=new TNode(a);
 72  return;
 73    }

 74 if (a>t->data)
 75 {
 76  insert(a,t->right);
 77 }

 78 else
 79  insert(a,t->left);
 80
 81
 82}

 83template<typename T>
 84void BinarySearchTree<T>::insert(const T a)
 85{
 86 insert(a,root);
 87
 88 
 89
 90
 91}

 92int _tmain(int argc, _TCHAR* argv[])
 93{
 94 BinarySearchTree<int > a;
 95 for (int i=0;i<10;++i)
 96 {
 97  a.insert(i);
 98 }

 99 cout<<"insert data"<<endl;
100    a.midvisit();
101 return 0;
102}

103


]]>
1涓艦寮忔紓鐨勫嚱鏁?/title><link>http://www.shnenglu.com/bloodsuck/archive/2007/06/12/26156.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Tue, 12 Jun 2007 08:09:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2007/06/12/26156.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/26156.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2007/06/12/26156.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/26156.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/26156.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">  backarry(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> arrayname )[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]) )  [</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>{<br></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    return arrayname;<br></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>};</span></div>       鍛靛懙錛屾槸鏈夌偣鍙ゆ?<br><br>  鍐嶆潵涓?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">  backarry(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> arrayname )[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]) )  [</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>{<br></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>      <br></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    return arrayname;<br></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>};<br></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">  backarry(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000"> arrayname)[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]))[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>{<br></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    {<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>        cout</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    }<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>    return arrayname;<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>};<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main()<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>{<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">array</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">{</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">};<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>backarry(</span><span style="COLOR: #0000ff">array</span><span style="COLOR: #000000">);</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">浼氳皟鐢ㄥ摢涓憿錛燂紵<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>}</span></div> <img src ="http://www.shnenglu.com/bloodsuck/aggbug/26156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2007-06-12 16:09 <a href="http://www.shnenglu.com/bloodsuck/archive/2007/06/12/26156.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓涓?Decorator 妯″紡 渚嬪瓙錛堝師錛?/title><link>http://www.shnenglu.com/bloodsuck/archive/2007/03/22/20338.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Thu, 22 Mar 2007 01:56:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2007/03/22/20338.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/20338.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2007/03/22/20338.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/20338.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/20338.html</trackback:ping><description><![CDATA[ <p>聽</p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <span style="COLOR: #008080">聽1</span> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">#pragma聽once<br /></span> <span style="COLOR: #008080">聽2</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">聽3</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />class聽component<br /></span> <span style="COLOR: #008080">聽4</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">聽5</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">聽6</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽component(void);<br /></span> <span style="COLOR: #008080">聽7</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽virtual聽void聽printsefl()</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">聽聽聽;<br /></span> <span style="COLOR: #008080">聽8</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">聽9</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽virtual聽~component(void);<br /></span> <span style="COLOR: #008080">10</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />};<br /></span> <span style="COLOR: #008080">11</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">12</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />class聽concreatecom聽:</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽component<br /></span> <span style="COLOR: #008080">13</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">14</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">15</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽concreatecom(char</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">聽);<br /></span> <span style="COLOR: #008080">16</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽virtual聽void聽printsefl()聽聽聽;<br /></span> <span style="COLOR: #008080">17</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽virtual聽~concreatecom(void);<br /></span> <span style="COLOR: #008080">18</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />protected:<br /></span> <span style="COLOR: #008080">19</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">20</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />char聽</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">聽_psz_text;<br /></span> <span style="COLOR: #008080">21</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />};<br /></span> <span style="COLOR: #008080">22</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">23</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />class聽decorator:</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽component<br /></span> <span style="COLOR: #008080">24</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">25</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">26</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽聽decorator(component</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">27</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽virtual聽void聽printsefl()聽聽聽聽聽;<br /></span> <span style="COLOR: #008080">28</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽virtual聽~decorator();<br /></span> <span style="COLOR: #008080">29</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />protected:<br /></span> <span style="COLOR: #008080">30</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">31</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">32</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽component聽</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">聽_pcomponent;<br /></span> <span style="COLOR: #008080">33</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />};<br /></span> <span style="COLOR: #008080">34</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />class聽聽headdeco:</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽decorator<br /></span> <span style="COLOR: #008080">35</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">36</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">37</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽聽聽聽headdeco(component</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">,</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">38</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽virtual聽void聽printsefl()聽聽聽;<br /></span> <span style="COLOR: #008080">39</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽virtual聽~headdeco();<br /></span> <span style="COLOR: #008080">40</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />protected:<br /></span> <span style="COLOR: #008080">41</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽virtual聽void聽printhead()聽聽;<br /></span> <span style="COLOR: #008080">42</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">43</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽_i_head;<br /></span> <span style="COLOR: #008080">44</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />};<br /></span> <span style="COLOR: #008080">45</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">46</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />class聽enddeco:</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽decorator<br /></span> <span style="COLOR: #008080">47</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">48</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">49</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽聽聽enddeco(component</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">,char</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">50</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽virtual聽void聽printsefl()聽;<br /></span> <span style="COLOR: #008080">51</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽virtual聽聽~enddeco();<br /></span> <span style="COLOR: #008080">52</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />protected:<br /></span> <span style="COLOR: #008080">53</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽聽聽virtual聽void聽printend()聽;<br /></span> <span style="COLOR: #008080">54</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000">:<br /></span> <span style="COLOR: #008080">55</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽char</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">聽_pch_end;<br /></span> <span style="COLOR: #008080">56</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />};</span> </div> <br /> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <span style="COLOR: #008080">聽1</span> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">#include聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">StdAfx.h</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #008080">聽2</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">iostream</span> <span style="COLOR: #000000">></span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #008080">聽3</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">component.h</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #008080">聽4</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />using聽namespace聽std;<br /></span> <span style="COLOR: #008080">聽5</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">聽6</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />component::component(void)<br /></span> <span style="COLOR: #008080">聽7</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">聽8</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">聽9</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">10</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />component::~component(void)<br /></span> <span style="COLOR: #008080">11</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">12</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">13</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">14</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />void聽concreatecom::printsefl()聽<br /></span> <span style="COLOR: #008080">15</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">16</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">endl;<br /></span> <span style="COLOR: #008080">17</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">_psz_text聽;<br /></span> <span style="COLOR: #008080">18</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">endl;<br /></span> <span style="COLOR: #008080">19</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">20</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽concreatecom::concreatecom(char</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">聽psz)<br /></span> <span style="COLOR: #008080">21</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">22</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽聽聽_psz_text</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">psz;<br /></span> <span style="COLOR: #008080">23</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">24</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽decorator::decorator(component</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">聽a):<br /></span> <span style="COLOR: #008080">25</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽_pcomponent(a)<br /></span> <span style="COLOR: #008080">26</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">27</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽<br /></span> <span style="COLOR: #008080">28</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">29</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />concreatecom::~concreatecom()<br /></span> <span style="COLOR: #008080">30</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">31</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">32</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">33</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />void聽decorator::printsefl()<br /></span> <span style="COLOR: #008080">34</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">35</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />_pcomponent.printsefl();<br /></span> <span style="COLOR: #008080">36</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽<br /></span> <span style="COLOR: #008080">37</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">38</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">39</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />decorator::~decorator()<br /></span> <span style="COLOR: #008080">40</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">41</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">42</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">43</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">44</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽headdeco::headdeco(component聽</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">聽refcom,聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽i):<br /></span> <span style="COLOR: #008080">45</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽decorator(refcom)<br /></span> <span style="COLOR: #008080">46</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽,_i_head(i)<br /></span> <span style="COLOR: #008080">47</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">48</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">49</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">50</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />void聽headdeco::printsefl()聽<br /></span> <span style="COLOR: #008080">51</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{聽<br /></span> <span style="COLOR: #008080">52</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽printhead();<br /></span> <span style="COLOR: #008080">53</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽decorator::printsefl();<br /></span> <span style="COLOR: #008080">54</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽<br /></span> <span style="COLOR: #008080">55</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">56</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />void聽headdeco::printhead()聽<br /></span> <span style="COLOR: #008080">57</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">58</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">endl;<br /></span> <span style="COLOR: #008080">59</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">_i_head;<br /></span> <span style="COLOR: #008080">60</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">endl;<br /></span> <span style="COLOR: #008080">61</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">62</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />headdeco::~headdeco()<br /></span> <span style="COLOR: #008080">63</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">64</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽<br /></span> <span style="COLOR: #008080">65</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">66</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">67</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />enddeco::enddeco(component聽</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">聽refcom,char聽</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">聽pch)<br /></span> <span style="COLOR: #008080">68</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />:decorator(refcom)<br /></span> <span style="COLOR: #008080">69</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />,_pch_end(pch)<br /></span> <span style="COLOR: #008080">70</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">71</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽<br /></span> <span style="COLOR: #008080">72</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">73</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />void聽enddeco::printsefl()聽<br /></span> <span style="COLOR: #008080">74</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">75</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽decorator::printsefl();<br /></span> <span style="COLOR: #008080">76</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽printend();<br /></span> <span style="COLOR: #008080">77</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">78</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />void聽enddeco::printend()聽聽<br /></span> <span style="COLOR: #008080">79</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">80</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">endl;<br /></span> <span style="COLOR: #008080">81</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">_pch_end;<br /></span> <span style="COLOR: #008080">82</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">endl;<br /></span> <span style="COLOR: #008080">83</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">84</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />enddeco::~enddeco()<br /></span> <span style="COLOR: #008080">85</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">86</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">87</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}</span> </div> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <span style="COLOR: #008080">聽1</span> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">//</span> <span style="COLOR: #000000">聽decorator.cpp聽:聽瀹氫箟鎺у埗鍙板簲鐢ㄧ▼搴忕殑鍏ュ彛鐐廣?br /></span> <span style="COLOR: #008080">聽2</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #000000">//</span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #008080">聽3</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">聽4</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">stdafx.h</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #008080">聽5</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">iostream</span> <span style="COLOR: #000000">></span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #008080">聽6</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">component.h</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #008080">聽7</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />using聽namespace聽std;<br /></span> <span style="COLOR: #008080">聽8</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> </span> <span style="COLOR: #008080">聽9</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽void聽printmodel(component</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">聽pcom聽)<br /></span> <span style="COLOR: #008080">10</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">11</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽pcom.printsefl();<br /></span> <span style="COLOR: #008080">12</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">13</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽_tmain(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽argc,聽_TCHAR</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">聽argv[])<br /></span> <span style="COLOR: #008080">14</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span> <span style="COLOR: #008080">15</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽聽<br /></span> <span style="COLOR: #008080">16</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽printmodel(headdeco(headdeco(enddeco(concreatecom(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">姝f枃杈撳嚭涓傘傘傘?/span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">),</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">榛勫ぇ浠?/span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">),</span> <span style="COLOR: #000000">2</span> <span style="COLOR: #000000">),</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">));<br /></span> <span style="COLOR: #008080">17</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽return聽</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;<br /></span> <span style="COLOR: #008080">18</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span> <span style="COLOR: #008080">19</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> </div> <p> <br /> <br />聽聽聽聽聽聽 榪欎釜decorator 妯″紡渚嬪瓙璁╁垵瀛﹁?鏇磋兘鍔犳繁 澶氭佸▉鍔涚殑浣撲細鍜?decorator 妯″紡 姣斿瓙綾葷伒媧葷殑浣撲細<br />瑕佹敞鎰忕殑闂鏄細瀵硅薄閾炬繪槸鍦?concreatecomponent聽 瀵硅薄澶勭粨鏉熴?br /><br />聽 ///姝ゅ鏄痗lient 浣跨敤 瀵硅薄鐨勫叆鍙g偣錛屼粎浠呭緱鍒頒簡 1涓?decorator 鐨勬淳鐢熺被瀵硅薄錛宑lient 浠涔堥兘涓嶇煡閬?br />printmodel(headdeco(headdeco(enddeco(concreatecom("姝f枃杈撳嚭涓傘傘傘?),"榛勫ぇ浠?),2),1));<br />///<br /></p> <p>聽聽聽聽 鍦╲c2005 涓嬮氳繃<br /></p> <img src ="http://www.shnenglu.com/bloodsuck/aggbug/20338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2007-03-22 09:56 <a href="http://www.shnenglu.com/bloodsuck/archive/2007/03/22/20338.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>STL container http://www.shnenglu.com/bloodsuck/archive/2006/09/18/12667.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Mon, 18 Sep 2006 02:43:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2006/09/18/12667.htmlhttp://www.shnenglu.com/bloodsuck/comments/12667.htmlhttp://www.shnenglu.com/bloodsuck/archive/2006/09/18/12667.html#Feedback0http://www.shnenglu.com/bloodsuck/comments/commentRss/12667.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/12667.htmlContainers in STL can be divided into three categories:
1.sequence containers,
2.associative containers,
3.container adapters.

1.Sequence Containers

Sequence containers maintain the original ordering of inserted elements. This allows you to specify where to insert the element in the container.

The deque (double-ended queue) container allows for fast insertions and deletions at the beginning and end of the container. You can also randomly access any element quickly.

The list container allows for fast insertions and deletions anywhere in the container, but you cannot randomly access an element in the container.

The vector container behaves like an array, but will automatically grow as required.

For more information on the sequence containers, consult the following table:

Sequence Container Native STL

deque

deque Class

ilist

Not Applicable

list

list Class

vector

vector Class

2.Associative Containers

The defining characteristic of associative containers is that elements are inserted in a pre-defined order, such as sorted ascending.

The associative containers can be grouped into two subsets: maps and sets. A map, sometimes referred to as a dictionary, consists of a key/value pair. The key is used to order the sequence, and the value is somehow associated with that key. For example, a map might contain keys representing every unique word in a text and values representing the number of times that word appears in the text. A set is simply an ascending container of unique elements.

Both map and set only allow one instance of a key or element to be inserted into the container. If multiple instances of elements are required, use multimap or multiset.

Both maps and sets support bidirectional iterators. For more information on iterators, see Iterators.

While not officially part of the STL standard, hash_map and hash_set are commonly used to improve searching times. These containers store their elements as a hash table, with each table entry containing a bidirectional linked list of elements. To ensure the fastest search times, make sure that the hashing algorithm for your elements returns evenly distributed hash values.

For more information on the associative containers, consult the following table:

Associative Container Native STL

hash_map

hash_map Class

hash_multimap

hash_multimap Class

hash_multiset

hash_multiset Class

hash_set

hash_set Class

map

map Class

multimap

multimap Class

multiset

multiset Class

set

set Class



3.Container Adapters

The container adapters are simply variations of the above containers. The container adapters do not support iterators.

The priority_queue container organized such that the element with the highest value is always first in the queue.

The queue container follows FIFO (first in, first out) semantics. The first element inserted (pushed) into the queue is the first to be removed (popped).

The stack container follows LIFO (last in, first out) semantics. The last element to be inserted (pushed) on the stack is the first element to be removed (popped).

Since container adapters do not support iterators, they cannot be used with the STL algorithms. For more information on algorithms, see Algorithms.

For more information on the container adapters, consult the following table:

Container Adapter Native STL

priority_queue

priority_queue Class

queue

queue Class

stack

stack Class




Requirements for Container Elements

Elements inserted into an STL container can be of any object type that supplies a public copy constructor, a public聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 public 鎷瘋礉鏋勯?錛宲ublic 鏋愭瀯 ,public 璧嬪兼搷浣滅聽聽 elem& operator =( elem const &)
destructor, and a public assignment operator. The destructor may not throw an exception. Furthermore, associative聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鏋愭瀯涓嶈兘鎶涘嚭寮傚父
containers such as set and map must have a public comparison operator defined, which is operator< by default. Some聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍏寵仈瀹瑰櫒聽 闄ゆ澶?榪樺簲鐢辨湁 姣旇緝鎿嶄綔絎?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽operations on containers might also require a public default constructor and a public equivalence operator.




浠ヤ笅鏄?鍚勫鍣?榪唬鍣ㄧ被鍨嬭緭鍑轟唬鐮?br />

聽1#include聽<vector>
聽2#include聽<list>
聽3#include聽<deque>
聽4#include聽<set>
聽5#include聽<map>
聽6usingnamespace聽std;
聽7template聽<typename聽inputitrator聽>
聽8void聽predict(inputitrator聽聽a)
聽9{聽聽聽iterator_traits<inputitrator>::iterato_category聽聽b;
10聽聽聽
11聽聽聽cout<<聽endl<<"聽聽"<<typeid(b).name();
12}

13
14
15main()
16
17{
18聽聽vector<int>聽a;
19聽聽deque<int>聽b;
20聽聽list<int>聽c;
21聽聽set<int>聽d;
22聽聽map<int>聽e;
23聽聽
24聽聽聽predict(a.begin());
25聽聽聽predict(b.begin());
26聽聽聽predict(c.begin());
27聽聽聽聽predict(d.begin());
28聽聽聽聽聽predict(e.begin());
29
30}
output iterator
   -> forward iterator
   -> bidirectional iterator
   -> random-access iterator

input iterator
   -> forward iterator
   -> bidirectional iterator
   -> random-access iterator


]]>
MFC 涓?鍛戒護娑堟伅浼犻?錛堝師鍒涳級http://www.shnenglu.com/bloodsuck/archive/2006/07/27/10575.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Thu, 27 Jul 2006 03:27:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2006/07/27/10575.htmlhttp://www.shnenglu.com/bloodsuck/comments/10575.htmlhttp://www.shnenglu.com/bloodsuck/archive/2006/07/27/10575.html#Feedback2http://www.shnenglu.com/bloodsuck/comments/commentRss/10575.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/10575.html聽聽聽聽聽 CCmdTarget 涓?妯℃澘 錛屾彁渚涳細 CCmdTarget::OnCmdMsg() 榪欎釜鍑芥暟 瀵?鍏舵淳鐢熺被 鐨勬秷鎭粨鏋勬暟緇勶紙瀹冩槸闈欐佺殑錛夊仛鎼滅儲 騫跺悜涓婏紙鍩虹被錛夌殑緇撴瀯鏁扮粍鍋氭悳绱㈠茍璋冪敤鐩稿簲鐨勬垚鍛樺嚱鏁般?br />聽聽 媧劇敓綾諱嬌鐢?
聽DECLARE_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(鏈被, 鍩虹被)
聽ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
END_MESSAGE_MAP()
鍔犲叆閾捐〃

聽聽聽聽聽聽聽 AfxWndProc 錛堝彧鏈夊彂鍚戠獥鍙f墠浼氳璋冪敤錛夛紝姝ゅ嚱鏁?灝嗕嬌鐢℉WND 鍦?mfc搴撶殑鍏ㄥ眬鍙橀噺涓?br />鎵懼埌鍙ユ焺鏄犲皠琛紝杞負 CWnd 鍨?錛屾渶緇堜嬌鐢?媧劇敓綾葷殑瀵筄nCmdMsg()鐨勯噸杞?鏉ュ疄鐜?涓嶅悓鐨勮礬鐢?br />
聽聽聽聽 浠ヤ笂鍘熺悊
聽聽聽聽聽聽聽聽聽聽 鍋氫負涓涓緥瀛愶紝灝嗙粰鍑轟釜紺轟緥錛?br />
聽1class聽CMan聽:聽public聽CCmdTarget
聽2{
聽3聽聽聽聽DECLARE_DYNAMIC(CMan)
聽4
聽5public:
聽6聽聽聽聽CMan();
聽7聽聽聽聽virtual~CMan();
聽8
聽9protected:
10聽聽聽聽DECLARE_MESSAGE_MAP()
11public:
12聽聽聽聽afx_msg聽void聽OnAppAbout();
13聽聽聽聽virtual聽BOOL聽OnCmdMsg(UINT聽nID,聽int聽nCode,聽void*聽pExtra,聽AFX_CMDHANDLERINFO*聽pHandlerInfo);
14聽聽聽聽int聽m_id;
15聽聽聽聽CString聽m_name;
16}
;////////////鑷畾涔夌殑c++綾?br />17
18
19////////////////閲嶈澆聽onCmdMsg錛岋紙m_man涓篊MainFram鐨勬垚鍛橈級

20BOOL聽CMainFrame::OnCmdMsg(UINT聽nID,聽int聽nCode,聽void*聽pExtra,聽AFX_CMDHANDLERINFO*聽pHandlerInfo)
21{
22聽聽聽聽//聽TODO:聽鍦ㄦ娣誨姞涓撶敤浠g爜鍜?鎴栬皟鐢ㄥ熀綾?/span>
23聽聽聽聽聽聽聽聽聽聽if聽(m_man.OnCmdMsg(nID,聽nCode,聽pExtra,聽pHandlerInfo聽))
24聽聽聽聽聽聽聽聽聽聽{
25聽聽聽聽聽聽聽聽聽聽聽聽聽聽returntrue;
26
27聽聽聽聽聽聽聽聽聽聽}
else
28聽聽聽聽return聽CFrameWnd::OnCmdMsg(nID,聽nCode,聽pExtra,聽pHandlerInfo);
29}

30//////////////緇機Man聽鍔犱釜鍛戒護鍝嶅簲
31BEGIN_MESSAGE_MAP(CMan,聽CCmdTarget)
32聽聽聽聽ON_COMMAND(ID_APP_ABOUT,聽OnAppAbout)
33END_MESSAGE_MAP()
34
35
36
37//聽CMan聽娑堟伅澶勭悊紼嬪簭
38
39void聽CMan::OnAppAbout()
40{
41聽聽聽聽//聽TODO:聽鍦ㄦ娣誨姞鍛戒護澶勭悊紼嬪簭浠g爜
42聽聽聽聽CString聽str;
43聽聽聽聽str.Format("%d聽",m_id);
44聽聽聽聽str+=m_name;
45聽聽聽聽AfxMessageBox(str);
46}

47///////////
48
49榪愯鍚庡氨浼氬彂鐜奧犳鍛戒護灝嗙敱CMan::onAppAbout()聽鏉ヂ?br />50鍝嶅簲


]]>
鑱氬悎http://www.shnenglu.com/bloodsuck/archive/2006/07/05/9422.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Wed, 05 Jul 2006 03:45:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2006/07/05/9422.htmlhttp://www.shnenglu.com/bloodsuck/comments/9422.htmlhttp://www.shnenglu.com/bloodsuck/archive/2006/07/05/9422.html#Feedback0http://www.shnenglu.com/bloodsuck/comments/commentRss/9422.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/9422.html聽聽聽聽聽 a 鑱氬悎 b
聽聽聽 b 瑕佹湁蹇呰鐨勬敮鎸佹墠鑳藉疄鐜幫紝鍏蜂綋榪囩▼濡傦細
聽聽聽聽 a, cocreateinstance,鎸囧畾 鑷繁鐨処Unknown聽 ,騫跺繀欏誨湪iid,ppv涓寚瀹氭槸 IID__IUnknown ,IUnknown*錛堣鑱氬悎鐨刢om綾葷殑 闈炲鎵業Unknown錛?br />姝ゆ椂 琚仛鍚堢被 鍦ㄧ被鍘傦紙createinstance 涓?鎺ユ敹 a鐨?IUnknown聽 騫跺湪 b 鐨勬垚鍛樹腑璧嬪ソ鍊鹼級鏀寔涓嬶紝琚垱寤?br />鐨刢om綾?琚垱寤恒?br />聽聽聽聽聽 b 涓?2緇?IUnknown 鎺ュ彛錛氬鎵橈紙鑱氬悎錛?鍜屄犅?闈炲鎵橈紙姝e父錛?br />聽聽聽 鍦╝ 涓幏鍙?IUnknown鎺ュ彛錛坆鐨勶級錛岃姹?鍏朵粬 鎺ュ彛鏃?( a鎶?瀹㈡埛鍙戝嚭鐨勫b 鐨勬帴鍙h姹?杞埌聽 a 鑾峰彇
聽IUnknown 鎺ュ彛 璋冪敤 queryinterface ),鍏ㄩ儴浣跨敤聽 b 瀵硅薄 鐨劼?濮旀墭鎺ュ彛聽 鏉ュ垽鏂?鏄妸鎺ュ彛璇鋒眰 杞埌
闈炲鎵?榪樻槸 澶栭儴聽 a 鐨処Unknown


]]>
涓涓寘瀹歸噸鐢?/title><link>http://www.shnenglu.com/bloodsuck/archive/2006/07/04/9383.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Tue, 04 Jul 2006 08:20:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2006/07/04/9383.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/9383.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2006/07/04/9383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/9383.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/9383.html</trackback:ping><description><![CDATA[     鎽樿: 1 #pragma聽once 聽聽2 static 聽 const 聽GUID聽CLSID_mydiv聽 = 聽 聽聽3 {聽 ...  <a href='http://www.shnenglu.com/bloodsuck/archive/2006/07/04/9383.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/bloodsuck/aggbug/9383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2006-07-04 16:20 <a href="http://www.shnenglu.com/bloodsuck/archive/2006/07/04/9383.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Run time type Informationhttp://www.shnenglu.com/bloodsuck/archive/2006/07/04/9360.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Tue, 04 Jul 2006 02:23:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2006/07/04/9360.htmlhttp://www.shnenglu.com/bloodsuck/comments/9360.htmlhttp://www.shnenglu.com/bloodsuck/archive/2006/07/04/9360.html#Feedback2http://www.shnenglu.com/bloodsuck/comments/commentRss/9360.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/9360.html
涓聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 dynamic_cast
< type-id > ( expression )
聽 type-id :蹇呴』鏄寚閽堟垨鑰呭紩鐢?br />聽 expression:蹇呴』鏄寚閽堟垨鑰呬竴涓乏鍊?br />鍩烘湰涓婃槸鐢ㄦ潵鍋?瀛愬璞¢棿鐨勮漿鎹?br />1.鍩烘湰鐨勭敤娉?br />
class B { ... };
class C : public B { ... };
class D : public C { ... };

void f(D* pd)
{
   C* pc = dynamic_cast<C*>(pd);   // ok: C is a direct base class
                                 // pc points to C subobject of pd 

   B* pb = dynamic_cast<B*>(pd);   // ok: B is an indirect base class
                                 // pb points to B subobject of pd 
   ...
}

This type of conversion is called an "upcast" because it moves a pointer up a class hierarchy, from a derived class to a class it is derived from. An upcast is an implicit conversion.

If type-id is void*, a run-time check is made to determine the actual type of expression. The result is a pointer to the complete object pointed to by expression. For example:

class A { ... };

class B { ... };

void f()
{
   A* pa = new A;
   B* pb = new B;
   void* pv = dynamic_cast<void*>(pa);
   // pv now points to an object of type A
   ...
   pv = dynamic_cast<void*>(pb);
   // pv now points to an object of type B
}

If type-id is not void*, a run-time check is made to see if the object pointed to by expression can be converted to the type pointed to by type-id.

If the type of expression is a base class of the type of type-id, a run-time check is made to see if expression actually points to a complete object of the type of type-id. If this is true, the result is a pointer to a complete object of the type of type-id. For example:

class B { ... };
class D : public B { ... };

void f()
{
   B* pb = new D;                     // unclear but ok
   B* pb2 = new B;

   D* pd = dynamic_cast<D*>(pb);      // ok: pb actually points to a D
   ...
   D* pd2 = dynamic_cast<D*>(pb2);   // pb2 points to a B not a D
                                    // cast was bad so pd2 == NULL
   ...
}

This type of conversion is called a "downcast" because it moves a pointer down a class hierarchy, from a given class to a class derived from it.
灝忕粨錛?br />聽 a聽聽聽聽 瀹為檯鎸囧悜瀵硅薄 鍜屄犅?b 鐩爣瀵硅薄,聽 b 鏄痑 鐨?鍩虹被錛堝瓙瀵硅薄錛夛紝鎴栬呮槸2鑰?鍚岀駭杞崲鎵嶆垚鍔?br />鍚﹀垯 鐩爣涓篘ULL;涔熷氨鏄涓嶈兘鍚戜笅杞?br />


2聽聽 澶氶噸闈炶櫄鐨勭戶鎵挎ā寮?br />

Class Hierarchy Showing Multiple Inheritance

A pointer to an object of type D can be safely cast to B or C. However, if D is cast to point to an A object, which instance of A would result? This would result in an ambiguous casting error. To get around this problem, you can perform two unambiguous casts. For example:

void f()
{
   D* pd = new D;
   A* pa = dynamic_cast<A*>(pd);      // error: ambiguous
   B* pb = dynamic_cast<B*>(pd);      // first cast to B
   A* pa2 = dynamic_cast<A*>(pb);   // ok: unambiguous
}

Further ambiguities can be introduced when you use virtual base classes. Consider the class hierarchy shown in the following figure.

聽聽聽 涔熷氨鏄鍦?鎰忔т笅浼氬け璐?br />3.瀛愬璞¢棿鐨勮漿鎹?br />

Class Hierarchy Showing Duplicate Base Classes


聽聽聽聽//pd 鎸囧悜 e 瀵硅薄
void f(D* pd)
{
聽聽 E* pe = dynamic_cast<E*>(pd);
聽聽 B* pb = pe;聽聽聽聽聽 // upcast, implicit conversion
聽聽 A* pa = pb;聽聽聽聽聽 // upcast, implicit conversion
}

//pd 鎸囧悜 e 瀵硅薄
void f(D* pd)
{
聽聽 B* pb = dynamic_cast<B*>(pd);聽聽聽聽聽 // cross cast
聽聽 A* pa = pb;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // upcast, implicit conversion
}

聽 涔熷氨鏄?鎵璋?cross cast

浜屄?typeid( type-id )聽聽聽聽 typeid( expression )
聽聽 姝ゆ搷浣滅榪斿洖涓?const type_info &聽
聽聽聽聽聽聽聽聽聽聽聽 expression聽蹇呴』鎸囧悜涓涓鎬佺被鍨嬶紙甯﹁櫄鍑芥暟聽聽聽 錛夛紝騫朵笖瑕佽В寮曠敤

#include <iostream>
#include <typeinfo.h>

class Base {
public:
聽聽 virtual void vvfunc() {}
};

class Derived : public Base {};

using namespace std;
int main()
{
聽聽 Derived* pd = new Derived;
聽聽 Base* pb = pd;
聽聽 cout << typeid( pb ).name() << endl;聽聽 //prints "class Base *"
聽聽 cout << typeid( *pb ).name() << endl;聽聽 //prints "class Derived"
聽聽 cout << typeid( pd ).name() << endl;聽聽 //prints "class Derived *"
聽聽 cout << typeid( *pd ).name() << endl;聽聽 //prints "class Derived"
聽聽 delete pd;
}
// compile with: /GR /EHsc

鍦ㄦā鐗堜腑浣跨敤
template < typename T > T max( T arg1, T arg2 ) {
聽聽 cout << typeid( T ).name() << "s compared." << endl;
聽聽 return ( arg1 > arg2 ? arg1 : arg2 );
}


聽聽聽聽聽聽聽聽聽聽聽



]]>
涓涓猚om緇勪歡鐨勭粌涔?/title><link>http://www.shnenglu.com/bloodsuck/archive/2006/06/30/9244.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Fri, 30 Jun 2006 09:23:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2006/06/30/9244.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/9244.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2006/06/30/9244.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/9244.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/9244.html</trackback:ping><description><![CDATA[     鎽樿: // 聽{7B55D765-68A6-404e-99E2-CA9ABC389A27} static 聽 const 聽聽GUID聽IID_IUnknown9 = 聽 {聽 0x7b55d765 ...  <a href='http://www.shnenglu.com/bloodsuck/archive/2006/06/30/9244.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/bloodsuck/aggbug/9244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2006-06-30 17:23 <a href="http://www.shnenglu.com/bloodsuck/archive/2006/06/30/9244.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MFC涓?windows object 鍜?C++ objecthttp://www.shnenglu.com/bloodsuck/archive/2006/06/30/9222.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Fri, 30 Jun 2006 03:33:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2006/06/30/9222.htmlhttp://www.shnenglu.com/bloodsuck/comments/9222.htmlhttp://www.shnenglu.com/bloodsuck/archive/2006/06/30/9222.html#Feedback1http://www.shnenglu.com/bloodsuck/comments/commentRss/9222.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/9222.html The Problem

Windows objects are normally represented by HANDLEs. The MFC classes wrap Windows object handles with C++ objects. The handle wrapping functions of the MFC class library provide a way to find the C++ object that is wrapping the Windows object with a particular handle. There are times when a Windows object does not have a C++ wrapper object, however, and at these times a temporary object is created to act as the C++ wrapper.

mfc 鏄犲皠鐨?windows object ---->c++ wrapper
浠ヤ笅浣跨敤 mfc 鐨勫嚱鏁?濡傦細fromhandle, getdlgitem,閮戒細榪斿洖temporary 鍜?pemanent聽 c++ wrapper object
聽娉ㄦ剰錛?br />聽聽聽聽 闆舵椂鐨?瀵硅薄 浼氳鍦ㄧ┖闂叉椂(OnIdle()鍑芥暟)琚垹闄わ紝涓嶈兘瀛樹笅鍦ㄤ笅嬈℃秷鎭鐞嗕腑 浣跨敤
The default OnIdle processing in CWinThread automatically calls DeleteTempMap for each class that supports temporary handle maps
////////////////////////////////////////////////////////////
The Windows objects that use handle maps are:

  • HWND (CWnd and CWnd-derived classes)
  • HDC (CDC and CDC-derived classes)
  • HMENU (CMenu)
  • HPEN (CGdiObject)
  • HBRUSH (CGdiObject)
  • HFONT (CGdiObject)
  • HBITMAP (CGdiObject)
  • HPALETTE (CGdiObject)
  • HRGN (CGdiObject)
  • HIMAGELIST (CImageList)
  • SOCKET (CSocket)

///////////////////////////////////////////////

Given a handle to any of these objects, you can find the MFC object that wraps the handle by calling the static member function FromHandle. For example, given an HWND called hWnd:

CWnd::FromHandle(hWnd)

will return a pointer to the CWnd that wraps the hWnd. If that hWnd does not have a specific wrapper object, then a temporary CWnd is created to wrap the hWnd. This makes it possible to get a valid C++ object from any handle.

Once you have a wrapper object, you can get to its handle through a public member variable. In the case of a CWnd, m_hWnd contains the HWND for that object.

Attaching Handles to MFC Objects

Given a newly created handle-wrapper object and a handle to a Windows object, you can associate the two by calling Attach. For example:

CWnd myWnd;
myWnd.Attach(hWnd);
////mywnd 鏋愭瀯鏃朵細璋冪敤 destroywindow ,榪炲悓 hwnd 涓璧烽攢姣?br />



This makes an entry in the permanent map associating myWnd and hWnd.
Calling CWnd::FromHandle(hWnd) will now return a pointer to myWnd.
When myWnd is deleted, the destructor will automatically destroy the hWnd by calling the Windows DestroyWindow function. If this is not desired, the hWnd must be detached from myWnd before the myWnd object is destroyed (normally when leaving the scope at which myWnd was defined). The Detach member function does this.

myWnd.Detach();

More About Temporary Objects

Temporary objects are created whenever FromHandle is given a handle that does not already have a wrapper object. These temporary objects are detached from their handle and deleted by the DeleteTempMap functions. The default OnIdle processing in CWinThread automatically calls DeleteTempMap for each class that supports temporary handle maps. This means that you cannot assume a pointer to a temporary object will be valid past the point of exit from the function where the pointer was obtained, as the temporary object will be deleted during the Windows message-loop idle time.

寰堥噸瑕?
鍦ㄥ綰跨▼涓紶閫?c++ wrapper object 鏄棤鏁堢殑(鏃犺鏄?temporary 榪樻槸 permanent)
鍙兘浼犻?windows handle, 鎹㈠彞璇濆氨鏄錛?綰跨▼ 鍙兘 璁塊棶 鑷繁鍒涘緩鐨刢++ wrapper object

Wrapper Objects and Multiple Threads

Both temporary and permanent objects are maintained on a per-thread basis. That is, one thread cannot access another threads C++ wrapper objects, regardless of whether it is temporary or permanent. As stated above, temporary objects are deleted when the thread which that temporary object belongs enters OnIdle.

To pass these objects from one thread to another, always send them as their native HANDLE type. Passing a C++ wrapper object from one thread to another will often result in unexpected results.

聽聽聽聽



]]>
STL 涔卞浜岋紙鍘熷垱錛?/title><link>http://www.shnenglu.com/bloodsuck/archive/2006/06/02/8084.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Fri, 02 Jun 2006 07:43:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2006/06/02/8084.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/8084.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2006/06/02/8084.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/8084.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/8084.html</trackback:ping><description><![CDATA[1.瀹瑰櫒<br />聽聽 欏哄簭: vector(綾諱技鍔ㄦ佸闀挎暟緇勶級聽 deque聽錛堝弻绔槦鍒楋級聽 list錛堝弻澶存寚閽堬級<br />聽聽 鍏寵仈:set 聽multiset(鏈夐噸澶嶏級聽 map聽聽 multiset錛堟湁閲嶅錛?錛岃嚜鍔ㄦ帓搴忥紙鍐呴儴2鍙夋爲錛?br />聽 鐗規畩棰勫畾涔夊鍣細stack, queue ,prority queue<br />2.榪唬鍣?br />聽聽聽聽聽 姣忕瀹瑰櫒閮芥彁渚涗簡鑷繁鐨勮凱浠e櫒錛岀浉鍚岀殑鎿嶄綔鐣岄潰錛屼笉鍚岀殑鍐呴儴瀹炵幇錛?br />聽聽 *,->,==,!=,++,--鍏卞悓鎿嶄綔<br />聽聽聽聽 闅忔満iterator : 鏀寔 >錛?lt;:濡傦細vector, deque,string<br />聽聽聽 鍙屽悜iterator:涓嶆敮鎸?gt;,<:<br />聽聽 鐗規畩棰勫畾涔夛細<br />鎻掑叆榪唬鍣?br />聽聽聽聽聽聽聽聽聽 insert iterator:寮曡搗鑷姩澧為暱錛岄潪瑕嗙洊<br />聽聽聽聽聽聽聽聽聽聽聽聽 back_inserter(container)<br />聽聽聽聽聽聽聽聽聽聽聽聽 front_inserter(container)<br />聽聽聽聽聽聽聽聽聽聽 inserter(container,pos)//璋冪敤聽container.insert()//姣忕瀹瑰櫒閮藉叿鏈塱nsert()//鍏寵仈瀹瑰櫒鍞竴<br />聽嫻佽凱浠e櫒<br />聽聽聽聽聽聽聽聽聽聽聽聽 istream_iterator<br />聽聽聽聽聽聽聽聽聽聽聽聽 ostream_iterator<br />聽閫嗗悜榪唬鍣?br />瀹瑰櫒涓厓绱犲簲婊¤凍錛?br />聽聽聽聽 鏈夋嫹璐濇瀯閫狅紝璧嬪艱繍綆楃錛屾瀽鏋勮兘閿姣?br />聽聽 欏哄簭錛氶粯璁ゆ瀯閫犲簲璇ュ彲鐢?br />聽聽 鍏寵仈錛氬繀欏繪湁鎺掑簭鍑嗗垯<br />瀹瑰櫒涓槸 鍊間笉鏄紩鐢?br /><br />閫氱敤鎿嶄綔錛?br />聽聽 containertype c;<br />聽 ct聽 c(c1);<br />聽 ct聽聽 c(begin,end);<br />聽c.~ct();<br />聽c.size(), c.max_size(),c.empty(),c1==c2;c1<c2;c1.swap(c2);聽swap(c1,c2);c.begin();c.end();c.rbegin();c.rend();<br />c.inert(pos,elem);c.erase(begin,end),c.clear(),c.get_allocator<br />聽<br />聽聽聽聽 3.vector <br />聽聽聽 鍔ㄦ佸闀挎暟緇?鍦ㄩ槦灝炬彃鍏ワ紝鍒犻櫎鏁堢巼楂?br />娉ㄦ剰 鍔ㄦ佸闀挎椂 榪唬鍣ㄥけ鏁?鍐呴儴鍙兘瑕侀噸閰嶇疆<br />闄や簡clear(),vector 涓嶄細鑷姩緙╁皬<br />vector 鐨勮凱浠e櫒 灝辨槸 鍏冪礌鐨刵ative鎸囬拡,榪炵畫瀛樺偍錛岃凱浠e櫒鏄釜random <br />絀哄垽鏂?br />聽聽聽聽聽聽 a.begin==a.end<br /><br />4.list聽<br />聽聽 榪唬鍣ㄦ槸涓弻鍚戠殑錛岄潪榪炵畫瀛樺偍錛岃屼笖鏄釜鐜姸閾捐〃鍦ㄥ熬绔槸涓湭鍒濆鍖栬妭鐐?br />絀哄垽鏂?br />聽聽 a.begin==a.end;<br />clear聽 remove聽 unique(鎶婄浉鍚屽厓绱犵Щ鍑猴紝鐣欎竴涓? 聽insert<br />鍙兘浣跨敤鎴愬憳鍑芥暟 sort錛屼笉鑳戒嬌鐢犵畻娉?sort(浠栧彧鎺ュ彈random iterator)<br />5 .deque<br />鍔ㄦ佸闀跨殑鍙岀闃熷垪 錛屼絾鍐呴儴鏈哄埗鍜寁ector 涓嶄竴鏍?錛岃嫢騫茶繛緇瓨鍌ㄧ殑闆嗗悎<br />綆楁硶澶嶆潅搴﹂珮錛屽鎺掑簭鏃跺彲灝?鍏跺鍒跺埌 vector涓紝澶?灝炬彃鍏?鍒犻櫎鏁堢巼楂樎?錛?br />鎻愪緵闅忔満榪唬鍣?br />6.stack (container adapter)<br />鍏堣繘鍚庡嚭錛屼笉渚涜凱浠e櫒錛?涓嶆彁渚涜蛋璁垮姛鑳?br />7.queue(container adapter)<br />聽聽鍏堣繘鍏堝嚭錛屼笉鎻愪緵榪唬鍣紝涓嶆彁渚涜蛋璁垮姛鑳?br />8.heap 杈呭姪<br />聽聽 鍏跺唴閮ㄤ負涓涓畬鍏?鍙夋爲錛屾彃鍏ユ椂鑷姩鎺掑簭錛屼竴鑸負max_heap<br />聽聽聽宸﹀彸鏃犲簭錛屾煇鑺傜偣聽i,聽鐖惰妭鐐孤爄/2,宸﹀瓙鑺傜偣 2i錛屽彸瀛愯妭鐐?2i+1錛?br />聽<pre class="syntax"><b>template<class RandomAccessIterator> inline</b><b> void make_heap(</b><b> RandomAccessIterator </b><i>First</i><b>,</b><b> RandomAccessIterator </b><i>Last</i><b> )</b><b>template<class RandomAccessIterator> inline</b><b> void sort_heap(</b><b> RandomAccessIterator </b><i>First</i><b>,</b><b> RandomAccessIterator </b><i>Last</i><b> )</b><b>template<class RandomAccessIterator> inline</b><b> void push_heap(</b><b> RandomAccessIterator </b><i>First</i><b>,</b><b> RandomAccessIterator </b><i>Last</i><b> )</b><b>template<class RandomAccessIterator> inline</b><b> void pop_heap(</b><b> RandomAccessIterator </b><i>First</i><b>,</b><b> RandomAccessIterator </b><i>Last</i><b> )</b></pre>聽聽聽聽聽聽聽聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽 9.set,鍏寵仈瀹瑰櫒 錛屽簳灞備互rb-tree 瀹炵幇錛屽叾榪唬鍣ㄤ負涓猚onst iterator<br />聽聽 涓嶈兘鐢ㄨ凱浠e櫒鏉ユ敼鍙?鍏冪礌鍊鹼紝緙虹渷涓嬩互閫掑鎺掑簭<img src ="http://www.shnenglu.com/bloodsuck/aggbug/8084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2006-06-02 15:43 <a href="http://www.shnenglu.com/bloodsuck/archive/2006/06/02/8084.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>STL 涔卞涓錛堝師鍒涳級http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7950.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Wed, 31 May 2006 08:53:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2006/05/31/7950.htmlhttp://www.shnenglu.com/bloodsuck/comments/7950.htmlhttp://www.shnenglu.com/bloodsuck/archive/2006/05/31/7950.html#Feedback0http://www.shnenglu.com/bloodsuck/comments/commentRss/7950.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/7950.html闃呰鍏ㄦ枃

]]>
C++涔︾睄涓嬶紙杞澆錛?/title><link>http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7936.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Wed, 31 May 2006 05:36:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7936.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/7936.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7936.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/7936.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/7936.html</trackback:ping><description><![CDATA[ <font face="Verdana">聽鎴戝湪涓婄瘒涓滅洏鐐光濅簡TCPL鍜孌&E浠ュ強鍏ラ棬鏁欑▼銆侀珮鏁堝拰鍋ュ.緙栫▼銆佹ā鏉垮拰娉涘瀷緙栫▼絳夋柟闈㈠叡鍗佸嚑鏈珻++濂戒功銆傚啲鍘繪槬鏉ワ紝璁╂垜浠戶緇瑿++涔︾睄綺懼僵涔嬫梾J聽 </font> <p> <font face="Verdana">鏍囧噯搴撀?</font> </p> <p> <font face="Verdana">褰撴垜榪樺湪鐮旂┒闄㈠伐浣滄椂錛屼笌鍚岄櫌鍙﹀涓ゅ鐮旂┒鎵鍚堜綔寮鍙戣繃涓涓ぇ鍨嬫按鍒╂灑綰借皟搴﹂泦鎴愰」鐩傛垜浠笁瀹惰蔣浠剁郴緇熶箣闂撮兘瑕佺浉浜掗氫俊銆傚湪璋冭瘯閫氳妯″潡鏃訛紝緇嗗績鐨勫鎴鳳紙涓鍚嶅ソ瀛︾殑緋葷粺綆$悊鍛橈級鍙戠幇瀵逛簬鍚屼竴閫氫俊瑙勭害鐨勮В閲婁唬鐮侊紝鎴戠殑涓嶈秴榪?0琛岋紝鑰屽鏂圭殑鍒欒秴榪囦簡150琛屼笖寰堥毦鐪嬫噦銆傝繖浣嶇郴緇熺鐞嗗憳寰堢撼闂鳳紝鎴戣澶у緙栫▼椋庢牸鍜屼範鎯笉涓鏍鳳紝鎴戜嬌鐢ㄤ簡鏍囧噯搴擄紝鑰屼粬浣跨敤浜嗕紶緇烠緙栫▼椋庢牸浠ュ強浠栨墍涔犳儻鐨勫彟澶栦竴浜涙妧鏈偮?</font> </p> <p> <font face="Verdana">鍒浼氾紒鎴戠粷鏃犺船浣庤繖浣嶅悎浣滀紮浼寸殑鎰忔濄備簨瀹炰笂錛屾垜瀵歸偅浜涚湡姝f湁鐫娣卞帤鐨凜緙栫▼鍔熷姏鐨勭▼搴忓憳甯稿父鎬鏈夐挦浣╀箣蹇冦傛瘯绔燂紝C++鑳芥湁浠婂ぉ鐨勬垚鍔熷湪寰堝ぇ紼嬪害涓婄紭浜庡畠娣辨繁鍦版鏍逛簬C銆備綔涓轟竴鍚岰++紼嬪簭鍛橈紝鍊樿嫢涓嶇啛鎮塁++涓殑C錛屾垜寰寰浼氳涓轟粬鐨勫熀鏈姛鏄笉鎵庡疄鐨勶紝浠栫殑鎶鏈簳姘旀槸涓嶈凍鐨勩偮?</font> </p> <p> <font face="Verdana">涓嶈繃璇濆張璇村洖鏉ワ紝C++鏄竴縐嶅鑼冨瀷錛坧aradigm錛夌紪紼嬭璦錛屽叿浣撻噰鐢ㄥ摢縐嶇紪紼嬮鏍鹼紝涓撲笟紼嬪簭鍛樺簲璇ョ煡閬撹鍏蜂綋鎯呭喌鑰屽畾銆備綔涓轟竴鍚嶇粡甯擱渶瑕佸湪鐜板満鍋氬嵆鍏村紑鍙戠殑欏圭洰璐熻矗浜猴紝涓轟簡鐭鉤蹇湴瑙e喅褰撳姟涔嬫ワ紝鎴戜範鎯敖閲忛噰鐢ㄧ幇鏈夌殑搴擄紙鍜岀粍浠訛級銆傛晥鐜囷紙浠ュ強寮哄仴鎬э級涔呯粡楠岃瘉鐨凜++鏍囧噯搴撳凡緇忔憜鍦ㄩ偅鍎夸簡錛屼綍涔愯屼笉鐢ㄥ憿錛熉?</font> </p> <p> <font face="Verdana">Nicolai M. Josuttis, The C++ Standard Library: A Tutorial and Reference <br />銆奀++鏍囧噯紼嬪簭搴擄細鑷慨鏁欑▼涓庡弬鑰冩墜鍐屻嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?</font> </p> <p> <font face="Verdana">榪欐槸涓鏈櫨縐戝叏涔﹀紡鐨凜++鏍囧噯搴撹憲浣滐紝鏄竴鏈渶瑕佷竴鍐嶆煡闃呯殑鍙傝冨ぇ鍏ㄣ傚畠鍦ㄥ畬澶囨с佺粏鑷存т互鍙婄簿紜ф柟闈㈤兘鏄棤涓庝雞姣旂殑銆傛湰涔﹁緇嗕粙緇嶄簡姣忎竴鏍囧噯搴撶粍浠剁殑瑙勬牸鍜岀敤娉曪紝鍐呭娑電洊鍖呮嫭嫻佸拰鏈湴鍖栧湪鍐呯殑鏁翠釜鏍囧噯搴撹屼笉浠呬粎鏄疭TL銆傛濡傛湰涔﹀壇鏍囬鎵紺猴紝瀹冮鍏堥傚悎浣滀負鏁欑▼闃呰錛屽皵鍚庡張鍙敤浣滃弬鑰冩墜鍐屻?</font> </p> <p> <font face="Verdana">嫻呮樉鏄撴噦鐨勫啓浣滈鏍間嬌寰楄繖鏈功闈炲父鏄撹銆傚鏋滀綘甯屾湜瀛︿範鏍囧噯搴撶殑鐢ㄦ硶騫跺敖鍙兘鍦板彂鎸ュ叾娼滆兘錛岄偅浣犲繀欏繪嫢鏈夎繖鏈功銆傛濡傜綉緇滀笂鎵璦錛岃繖鏈功涓嶄粎浠呭簲璇ユ憜鍦ㄤ綘鐨勪功姍變腑錛屾洿搴旇鏀懼埌浣犵殑鐢佃剳妗屼笂銆傛垜鍚戞瘡涓浣嶈亴涓欳++紼嬪簭鍛樺己鐑堟帹鑽愩?</font> </p> <p> <font face="Verdana">Angelika Langer, Klaus Kreft, Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference <br />銆婃爣鍑咰++杈撳叆杈撳嚭嫻佷笌鏈湴鍖栥嬶紝浜烘皯閭數鍑虹増紺?</font> </p> <p> <font face="Verdana">C++鏍囧噯搴撶敱STL銆佹祦鍜屾湰鍦板寲涓夐儴鍒嗘瀯鎴愩傚叧浜嶴TL鐨勪功甯傞潰涓婂凡緇忔湁涓嶅皯錛屼絾緗曡嫻佸拰鏈湴鍖栨柟闈㈢殑涓撹憲銆傛湰涔︽槸榪欎袱涓鍩熶腑鏈浼樼鐨勪竴鏈紝榪勪粖涓烘娌℃湁浠諱綍涓鏈功姣旇繖涓鏈洿鍏ㄩ潰璇﹀敖鍦拌璁轟簡嫻佸拰鏈湴鍖栥傚鏋滀綘涓嶆弧瓚充簬鍋滅暀鍦ㄢ滀細鐢ㄢ濇祦搴撶殑灞傞潰錛屽崈涓囦笉瑕侀敊榪囧畠銆?</font> </p> <p> <font face="Verdana">2001騫村澶╋紝鎴戣崏鑽夌炕闃呰繃榪欐湰涔︾殑涓枃鐗堬紝浠庡唴瀹瑰埌鍖呰閮界粰鎴戠暀涓嬩簡姣旇緝娣卞埢鐨勫嵃璞?鈥?涓嶈繃璐熼潰鐨勫眳澶氫竴浜涖?003騫寸澶╋紝鏃犳剰涓緱鐭ユ煇緗戠粶涔﹀簵姝d互瓚呬綆浠鋒牸鐢╁崠榪欐湰涔︾殑涓瘧鏈紝鎯呬笉鑷錛屼竴闃靛攺鍢樸?</font> </p> <p> <font face="Verdana">Scott Meyers, Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library <br />銆奅ffective STL錛堝獎鍗扮増錛夈嬶紝涓浗鐢靛姏鍑虹増紺?</font> </p> <p> <font face="Verdana">璇誨畬Scott 鐨勩奅ffective C++銆嬪拰銆奙ore Effective C++銆嬬殑涓瘧鏈箣鍚庯紝鎴戜竴鐩存湡寰呰繖鏈功鐨勪腑鏂囩増銆傛垜浠庢綐鐖辨皯鍏堢敓鐨勪釜浜轟富欏典笂浜嗚В鍒幫紝浠栧拰浠栫殑鍚堜綔浼欎即浼間箮鏃╁凡瀹屾垚浜嗚繖鏈功鐨勭炕璇戝伐浣滐紝鍙儨鑷充粖甯傞潰涓婁粛涓嶅緱瑙併傚垢榪愮殑鏄紝鎴戜滑鍙互鐪嬪埌瀹冪殑鍘熺増銆?</font> </p> <p> <font face="Verdana">鏈功鏄嬌鐢⊿TL鐨勭▼搴忓憳蹇呰涔嬩綔銆傚湪榪欐湰涔︿腑錛孲cott鍚戞垜浠榪癝TL瀹瑰櫒鍜岀畻娉曠殑宸ヤ綔鏈哄埗浠ュ強濡備綍浠ユ渶浣蟲柟寮忎嬌鐢ㄥ畠浠傚拰Scott鐨勫叾浠栦綔鍝佷竴鏍鳳紝榪欐湰涔︾殑鍐欎綔椋庢牸娓呮櫚銆佺簿紜紝鍏鋒湁鏋佷匠鐨勫彲璇繪с傜湅榪囪繖鏈功浠ュ悗錛屾垜鎯充綘涔熻浼氬拰鎴戜互鍙婂叾浠朇++紼嬪簭鍛樹竴鏍蜂駭鐢熻繖鏍風殑鎯蟲硶錛歋cott浠涔堟椂鍊欎細鍐欏嚭涓鏈淢ore Effective STL鈥濓紵 </font> </p> <p> <font face="Verdana">鍏充簬STL錛屾垜榪樻彁閱掍綘鐣欏績Matthew H. Austern鐨勩奊eneric Programming and the STL: Using and Extending the C++ Standard Template Library銆嬶紙銆婃硾鍨嬬紪紼嬩笌STL銆嬶紝涓浗鐢靛姏鍑虹増紺撅級銆傝繖鏈功鏁e彂鐫嫻撳帤鐨勫闄㈡皵鎭侫ndrew Koenig鍜孊arbara Moo鍦ㄣ夾ccelerated C++: Practical Programming by Example銆嬩竴涔︽湯灝鵑儜閲嶆帹鑽愬彟澶栦袱鏈繘闃跺ソ涔︼紙闄や簡浠栦滑鑷繁鐨勩奟uminations on C++銆嬪錛夛紝鍏朵腑涓鏈槸TCPL錛屽彟澶栦竴鏈氨鏄湰涔︼紒 </font> </p> <p> <font face="Verdana">緗戠粶緙栫▼ </font> </p> <p> <font face="Verdana">鍦ㄧ綉緇滅紪紼嬫椂浠o紝C++搴旇鎵紨鐫鎬庢牱鐨勮鑹詫紝璁〢CE錛圓daptive Communications Environment錛夋潵鍛婅瘔浣犮?</font> </p> <p> <font face="Verdana">Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns <br />Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks <br />銆奀++緗戠粶緙栫▼錛屽嵎1錛氳繍鐢ˋCE鍜屾ā寮忔秷闄ゅ鏉傛с嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?<br />銆奀++緗戠粶緙栫▼錛屽嵎2錛氬熀浜?ACE 鍜屾鏋剁殑緋葷粺鍖栧鐢ㄣ嬶紝鐢靛瓙宸ヤ笟鍑虹増紺?</font> </p> <p> <font face="Verdana">閲囩敤C++榪涜浼佷笟綰х綉緇滅紪紼嬶紝鐩墠ACE錛堜互鍙婅繖涓ゆ湰涔︼級鏄竴涓煎緱鑰冭檻鐨勯夋嫨銆侫CE鏄竴涓潰鍚戝璞°佽法騫沖彴銆佸紑鏀炬簮鐮佺殑緗戠粶緙栫▼妗嗘灦錛岀洰鏍囧湪浜庢瀯寤洪珮鎬ц兘緗戠粶搴旂敤鍜屼腑闂翠歡銆侱ouglas鏄疉CE鐨勫垱濮嬩漢錛孲tephen鍒欏凡涓篈CE鎻愪緵浜嗘暟騫寸殑鎶鏈敮鎸佸拰欏鵑棶鏈嶅姟錛屼袱浣嶉兘鏄疉CE紺劇兢錛堟槸鐨勶紝ACE鐨勫獎鍝嶅拰瀹為檯搴旂敤鐨勭▼搴﹀凡緇忓艦鎴愪簡涓涓ぞ緹わ級鐨勪笓瀹躲?</font> </p> <p> <font face="Verdana">ACE騫朵笉鍗曞崟琚ぇ瀛﹀拰鐮旂┒鎵榪芥崸錛屽畠宸茬粡琚垚鍔熷湴搴旂敤浜庝笘鐣屼笂鎴愬崈涓婁竾涓晢涓氬簲鐢ㄤ腑銆傚湪鐢典俊銆佸畤鑸佸尰鑽拰璐㈢粡棰嗗煙鐨勭綉緇滅郴緇熶腑錛孉CE宸茬粡騫剁戶緇彂鎸ョ潃閲嶈鐨勪綔鐢ㄣ傚鏋滀綘鍑嗗寮鍙戦珮鎬ц兘閫氳緋葷粺錛屼綘搴旇鑰冭檻鑰冭檻榪欎竴姹囬泦涓栫晫欏跺皷涓撳鏅烘収鐨勬垚鏋溿?</font> </p> <p> <font face="Verdana">闄や簡浣跨敤C++闈㈠悜瀵硅薄璁捐鎶鏈拰妯℃澘絳夐珮綰ц璦鐗規у錛孉CE榪樿繍鐢ㄤ簡澶ч噺鐨勬ā寮忋傘奀++緗戠粶緙栫▼銆嬪嵎1鍜屽嵎2騫朵笉浠呬粎鏁欎綘鍏充簬ACE鐨勬柟鏂歸潰闈紝瀹冭繕浼氭暀緇欎綘妯″紡鍜岄氱敤妗嗘灦璁捐絳夐珮綰ф妧鏈瓑銆傛墍浠ワ紝浣滀負涓鍚嶄腑銆侀珮綰++紼嬪簭鍛橈紝鍗充嬌浣犲緢灝戣繘琛屾鍎垮叓緇忕殑C++緗戠粶紼嬪簭璁捐錛岄槄璇昏繖涓ゆ湰涔﹀悓鏍峰彲浠ヤ粠涓彈鐩娿?</font> </p> <p> <font face="Verdana">鏄殑錛屽茍闈炴墍鏈夌綉緇滃簲鐢ㄩ兘瑕佷嬌鐢╓eb鏈嶅姟鍣紙浠ュ強鍏朵粬搴旂敤鏈嶅姟鍣級鍜岄噸閲忕駭緇勪歡妯″瀷錛屾崲涓濊礬錛屽畠浠垨璁鎬篃鍙互浠庤交閲忕駭鐨凙CE緇勪歡涓幏鐩娿?</font> </p> <p> <font face="Verdana">鏉傞」 </font> </p> <p> <font face="Verdana">浠ヤ笅榪欏嚑鏈功涔嬫墍浠ヨ鍒楀叆鈥滄潅欏光濆崟鍏冿紝鍙槸鍥犱負鎴戞病鏈夎冭檻鍑烘洿鍚堥傜殑褰掔被鏂規硶錛屽畠浠拰涓婇潰鐨勪功綾嶄竴鏍鳳紝鍊煎緱涓璇匯?</font> </p> <p> <font face="Verdana">Bruce Eckel, Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition) <br />Bruce Eckel, Thinking in C++, Volume 2: Practical Programming (Second Edition) <br />銆奀++緙栫▼鎬濇兂錛堢2鐗堬級絎?鍗鳳細鏍囧噯C++瀵煎紩銆嬶紝鏈烘宸ヤ笟鍑虹増紺?<br />銆奀++緙栫▼鎬濇兂錛堣嫳鏂囩増 絎?鐗堬級銆嬶紝鏈烘宸ヤ笟鍑虹増紺?</font> </p> <p> <font face="Verdana">銆奣hinking in C++銆嬬殑絎?鐗堜簬1996騫磋崳鑾封滆蔣浠剁爺鍙戔濇潅蹇楄瘎閫夌殑鍥句功闇囨捈澶у銆傛渶鏂版帹鍑虹殑絎?鐗堝鍐呭榪涜浜嗗ぇ騫呮敼鍐欏拰璋冩暣錛屼互鍙嶆槧C++鏍囧噯鍖栧甫鏉ョ殑褰卞搷浠ュ強榪戝嚑騫撮潰鍚戝璞¢鍩熸渶鏂扮爺絀跺拰瀹炶返鎴愭灉銆傗滆緭鍏ヨ緭鍏ユ祦鈥濄佲滃閲嶇戶鎵庫濄佲滃紓甯稿鐞嗏濆拰鈥滆繍琛屾椂綾誨瀷璇嗗埆鈥濈瓑楂樼駭涓婚榪炲悓C++鏍囧噯鍖栦互鍚庡鍔犵殑涓浜涘唴瀹瑰垯琚斁鍏ョ浜屽嵎涓侭ruce鏄竴鍚嶇粡楠屼赴瀵岀殑C++璁插笀鍜岄【闂紝鍏跺煿璁拰鍐欎綔緇忛獙閮芥槸涓栫晫涓嫻佹按鍑嗭紝浠栫殑浣滃搧姣旈偅浜涒滅帺紲ㄢ濈殑鎶鏈漢鍛樺啓鐨勪笢瑗挎洿鑳藉惛寮曡鑰呫備簨瀹炰笂錛屽湪鍚岀被鍥句功涓紝瀵逛簬澶у鏁拌鑰呰岃█錛岃繖鏈功鐨勫彲璇繪ц瓚呰繃TCPL鍜屻奀++ Primer銆嬨傞『甯︿竴鎻愶紝璁塊棶浣滆呯殑绔欑偣錛屼綘鍙互鍏堢澒絎簩鍗風殑椋庨噰銆?</font> </p> <p> <font face="Verdana">Andrew Koenig, Barbara E. Moo, Ruminations on C++: A Decade of Programming Insight and Experience <br />銆奀++娌夋濆綍銆嬶紝浜烘皯閭數鍑虹増紺?</font> </p> <p> <font face="Verdana">Andrew鏄笘鐣屼笂灞堟寚鍙暟鐨凜++涓撳銆傝繖鏄竴鏈叧浜嶤++緙栫▼鎬濇兂鍜岀▼搴忚璁℃妧鏈岄潪璇█緇嗚妭鐨勮憲浣溿傚鏋滀綘宸茬粡鍏鋒湁涓瀹氱殑鍩虹錛岃繖鏈功灝嗘暀浣犲湪榪涜C++緙栫▼鏃跺簲璇ユ庢牱鎬濊冿紝搴旇濡備綍琛ㄨ揪瑙e喅鏂規銆傛暣鏈功鎶鏈〃杈鵑忓交錛屾枃瀛楅氫織鏄撴噦銆侭jarne榪欐牱璇勪環榪欐湰涔︼細鏈功閬嶅竷鈥淐++鏄粈涔堛丆++鑳藉鍋氫粈涔堚濈殑鐪熺煡鐏艱銆?</font> </p> <p> <font face="Verdana">Stanley B. Lippman, Inside The C++ Object Model <br />銆婃繁搴︽帰绱++瀵硅薄妯″瀷銆嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?<br />銆婃繁搴︽帰绱++瀵硅薄妯″瀷錛堝獎鍗扮増錛夈嬶紝涓浗鐢靛姏鍑虹増紺?</font> </p> <p> <font face="Verdana">浠庣紪璇戝櫒鐨勮搴﹁瀵烠++鍙互浣夸綘鐭ュ叾鐒跺茍鐭ュ叾鎵浠ョ劧銆傛湰涔︽帰璁ㄤ簡澶ч噺鐨凜++闈㈠悜瀵硅薄紼嬪簭璁捐鐨勫簳灞傝繍浣滄満鍒訛紝鍖呮嫭鏋勯犲嚱鏁般佸嚱鏁般佷復鏃跺璞°佺戶鎵褲佽櫄鎷熴佹ā鏉跨殑瀹炰緥鍖栥佸紓甯稿鐞嗐佽繍琛屾湡綾誨瀷璇嗗埆絳夛紝鍙﹀榪樹粙緇嶄簡涓浜涘湪瀹炵幇C++瀵硅薄妯″瀷榪囩▼涓仛鍑虹殑鏉冭 鎶樿》銆傚枩嬈㈠埁鏍歸棶搴曠殑C++紼嬪簭鍛樹笉瑕侀敊榪囪繖鏈功銆?</font> </p> <p> <font face="Verdana">Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented software <br />銆婅璁℃ā寮忥細鍙鐢ㄩ潰鍚戝璞¤蔣浠剁殑鍩虹銆嬶紝鏈烘宸ヤ笟鍑虹増紺?<br />銆婅璁℃ā寮忥細鍙鐢ㄩ潰鍚戝璞¤蔣浠剁殑鍩虹錛堣嫳鏂囩増錛夈嬶紝鏈烘宸ヤ笟鍑虹増紺?</font> </p> <p> <font face="Verdana">璁捐鍙鐢ㄧ殑闈㈠悜瀵硅薄鐨勮蔣浠訛紝浣犻渶瑕佹帉鎻¤璁℃ā寮忋傛湰涔﹀茍闈炰笓涓篊++紼嬪簭鍛樿屽啓錛屼絾瀹冮噰鐢ㄤ簡C++錛堜互鍙奡malltalk錛変綔涓轟富瑕佺ず渚嬭璦錛孋++紼嬪簭鍛樺挨鍏舵槗浜庝粠涓彈鐩娿傚洓浣嶄綔鑰呴兘鏄浗闄呭叕璁ょ殑闈㈠悜瀵硅薄杞歡棰嗗煙涓撳錛屼粬浠皢闈㈠悜瀵硅薄杞歡鐨勮璁$粡楠屼綔涓鴻璁℃ā寮忚緇嗚褰曚笅鏉ャ傝繖鏈功褰卞搷鏄姝ゆ繁榪滐紝浠ヨ嚦浜庡洓浣嶄綔鑰呬互鍙婃湰涔﹂兘琚樀縐頒負GoF錛圙ang of Four錛夈傛湰涔﹀闄㈡皵鎭祿鍘氾紝琛屾枃椋庢牸涓ヨ皚綆媧侊紝铏界劧瀹冧笉濡傛煇浜涜瑙fā寮忕殑涔︾睄鏄撹錛屼絾鐪熸瑕佺簿鍑嗗湴鐞嗚В璁捐妯″紡錛屾湰涔︽槸緇堟瀬鏉冨▉銆傚涔犺璁℃ā寮忥紝榪欐湰涔﹂渶瑕佷竴鑰屽啀銆佸啀鑰屼笁鐨勫拃鍤箋傞『甯︿竴鍙ワ細璇峰皢璁捐妯″紡鍖栦綔寮鎷撴濈淮鐨勯挜鍖欙紝鍒囪帿鎴愪負灝侀棴鎬濈淮鐨勬灧閿併?</font> </p> <p> <font face="Verdana">榪樻湁涓浜汣++濂戒功鍊煎緱涓璇伙紝鎭曟澶勬棤娉曚竴涓鍒楀嚭銆備緥濡侸ohn Lakos鐨勮憲浣溿奓arge-Scale C++ Software Design銆嬶紙銆婂ぇ瑙勬āC++紼嬪簭璁捐銆嬶紝涓浗鐢靛姏鍑虹増紺撅級鍜屼警鎹峰厛鐢熺殑銆奡TL 婧愮爜鍓栨瀽銆嬶紙鍗庝腑縐戞妧澶у鍑虹増紺撅級絳夈?</font> </p> <p> <font face="Verdana">銆奡TL 婧愮爜鍓栨瀽銆嬫槸涓鏈緢鏈夌壒鑹茬殑涔︼紝浣嗘垜璁や負瀹冭繕鍙互鏇村ソ銆傛垜涓漢鏈熷緟渚嵎鍏堢敓鑷涓鐗堝彂琛屼互鏉ョ粡榪囧妯℃澘鎶鏈殑娌夋穩鍜屽啀鎬濊冧箣鍚庯紝鍐嶅啓涓鏈墫鏋愬緱鏇存繁鍏ャ佹洿閫忓交騫朵笖鏇村叏闈㈢殑鈥滅浜岀増鈥濄傞仐鎲劇殑鏄紝渚嵎鍏堢敓鍦ㄥ畬鎴愩奀++ Templates: The Complete Guide銆嬩竴涔︾殑緲昏瘧鍚庝技涔庡喅瀹氭殏鏃跺憡鍒ā鏉褲佹硾鍨嬬紪紼嬪拰STL棰嗗煙銆?</font> </p> <p> <font face="Verdana">2004騫?鏈?1鏃ヨˉ鍏咃細鎴戠洰鍓嶆渶甯告煡闃呯殑涓ゆ湰鍙傝冧功鏄奀++鏍囧噯紼嬪簭搴撱嬪拰銆奡TL婧愮爜鍓栨瀽銆嬨傚綋鐒朵簡錛岃繖涓庢垜騫村唴鐨勫啓浣滆鍒掓湁寰堝ぇ鐨勫叧緋匯?</font> </p> <p> <font face="Verdana">浣跨敤C++鎴愬姛寮鍙戝ぇ瑙勬ā杞歡緋葷粺錛屼笉浠呴渶瑕佸緢濂藉湴鐞嗚В澶у鏁癈++涔︾睄涓榪扮殑閫昏緫璁捐闂錛屾洿闇瑕佹帉鎻°婂ぇ瑙勬āC++紼嬪簭璁捐銆嬩腑璁茶堪鐨勭墿鐞嗚璁℃妧鏈傚綋鐒訛紝榪欐湰涔︾殑紜湁鐐硅繃鏃朵簡錛屼笉榪囷紝濡傛灉浣犵殑綺懼姏鍜岄噾閽遍兘姣旇緝瀹界話錛屼拱涓鏈湅鐪嬪茍鏃犲潖澶勩?</font> </p> <p> <font face="Verdana">鑷蟲錛屾垜鎯蟲湁蹇呰澹版槑涓涓嬶紝鏈変竴浜涳紙濂斤級涔︽病鏈夊緱鍒版帹鑽愶紝涓昏鍘熷洜濡備笅錛?</font> </p> <p> <font face="Verdana">聽聽聽 * 浠ヤ笂榪欎簺涔﹀凡緇忚凍澶熷銆佽凍澶熷ソ浜嗐?<br />聽聽聽 * 鎴戜笉浼氭帹鑽愰氳繃姝e父娓犻亾寰堥毦璐拱鍒扮殑涔︾睄 鈥?涓嶇鏄腑鏂囩増榪樻槸鑻辨枃鐗堛?<br />聽聽聽 * 浣滐紙璇戯級鑰呭悕姘斿ぇ灝忎笉褰卞搷鎴戠殑鎺ㄨ崘銆傛垜浠槸鍦ㄧ湅涔︼紝涓嶆槸鐪嬩漢銆?<br />聽聽聽 * 鎴戜笉浼氭帹鑽愭垜浠庢潵娌℃湁鐪嬭繃鐨勪功銆傛垜鑷沖皯瑕佺湅榪囧叾涓殑鏌愪釜鐗堟湰錛堝寘鎷數瀛愭。錛夈傝繖涓滅湅鈥濓紝涓鑸寚鈥滆鐪熼槄璇燴濓紝涓嶈繃鏈変竴浜涗篃鍙兘綆楁槸鈥滄祻瑙堚濄?</font> </p> <p> <font face="Verdana">緇撹 </font> </p> <p> <font face="Verdana">浣滀負涓鍚嶆櫘閫氭妧鏈啓璇戣咃紝鎴戞繁鐭ユ妧鏈垱浣滃拰緲昏瘧鐨勮壈杈涳紙鍜屽揩涔愶級錛屽茍澶氬灝戝皯浜嗚В涓浜涙湁鍏蟲妧鏈功綾嶅垱浣溿佺炕璇戙佸埗浣溿佸嚭鐗堜互鍙婂競鍦烘帹浠嬭儗鍚庣殑緇嗚妭銆備粖澶╋紝鎴戜笉浼氬啀瀵逛竴鏈湅涓婂幓宸己浜烘剰鐨勫浘涔︿俊鍙e紑娌熾傜綏鍒楀悓涓鏈功鐨勫悇縐嶇増鏈殑鐢ㄦ剰鍙湪浜庝負浣犲鎻愪緵涓浜涗俊鎭紝璁╀綘澶氫竴縐嶉夋嫨銆?</font> </p> <p> <font face="Verdana">鍦ㄦ湰鏂囨垚鏂囩殑鍚庢湡錛屾垜緇橞jarne鍐欎簡涓灝佷俊錛岃鏁欏鏋滀粬鏉ュ啓榪欑瘒鏂囩珷浼氭庝箞鍐欍備粬緇欎簡鎴戠畝鏄庢壖瑕佺殑寤鴻銆傚湪鑲畾浠ヤ笂鍒楀嚭鐨勭粷澶ч儴鍒嗗浘涔﹂兘鏄笘鐣岄《灝栨按騫崇殑C++钁椾綔鐨勫悓鏃訛紝Bjarne鎻愰啋鎴戝埆蹇樹簡鍚戜笓瀹剁駭紼嬪簭鍛樻帹鑽愩奣he C++ Standard : Incorporating Technical Corrigendum No. 1銆嬨傝繖鏈功鏄?C++鏍囧噯瑙勮寖鐨勨滃浘涔︾増鈥濓紝Bjarne浜茶嚜涓轟箣浣滃簭銆?</font> </p> <p> <font face="Verdana">Bjarne榪樺弸濂藉湴鎻愰啋鎴戯紝鍦ㄦ垜鐨勬帹鑽愬垪琛ㄤ腑娌℃湁鍝竴鏈湁鍔╀簬C++紼嬪簭鍛樿繘琛學indows緙栫▼ 鈥?榪欐鏄垜鐨勬湰鎰忋傚湪榪欑瘒鏂囩珷涓紝鎴戝彧鎺ㄨ崘銆佺偣璇勫鉤鍙頒腑绔嬬殑C++钁椾綔錛堢綉緇滅紪紼嬮櫎澶栵級 鈥?鍜屾搷浣滅郴緇熸棤鍏籌紝鍜岄泦鎴愬紑鍙戠幆澧冩棤鍏籌紝鎴戠敋鑷沖夠鎯沖畠浠拰緙栬瘧鍣ㄤ篃鏃犲叧銆備綘鍙互鏍規嵁涓氬姟寮鍙戦渶瑕侊紝閫夎鑷繁鍠滅埍鐨勯鍩熺浉鍏崇殑C++涔︾睄銆?</font> </p> <p> <font face="Verdana">璇村埌鈥滅郴緇熸棤鍏熾佸鉤鍙頒腑绔嬧濓紝鎴戜笉鐢卞緱鎯寵搗浜嗏滄娊璞″眰鈥濈殑姒傚康銆傚紑鍙戝疄闄呭簲鐢ㄧ殑C++紼嬪簭鍛橀氬父宸ヤ綔浜庣壒瀹氭搷浣滅郴緇熴佺壒瀹氬紑鍙戠幆澧冨拰鐗瑰畾涓氬姟棰嗗煙涔嬩腑錛岃屽鏍囧噯C++鍜孋++鏍囧噯搴撴墡瀹炶屾繁鍒葷殑鎶婃彙錛屾棤鐤戞槸浣犲緱浠ュ湪涓嶅悓鐨勬搷浣滅郴緇熴佷笉鍚岀殑寮鍙戠幆澧冧互鍙婁笉鍚岀殑涓氬姟棰嗗煙涔嬮棿綰墊í椹伴獘鐨勨滄娊璞♀濇湰閽便偮?<br /></font> </p> <img src ="http://www.shnenglu.com/bloodsuck/aggbug/7936.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2006-05-31 13:36 <a href="http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7936.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>c++涔︾睄涓婏紙杞澆錛?/title><link>http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7934.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Wed, 31 May 2006 05:35:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7934.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/7934.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/7934.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/7934.html</trackback:ping><description><![CDATA[ <font face="Verdana">C++鏄竴闂ㄥ箍娉涚敤浜庡伐涓氳蔣浠剁爺鍙戠殑澶у瀷璇█銆傚畠鑷韓鐨勫鏉傛у拰瑙e喅鐜板疄闂鐨勮兘鍔涳紝浣垮叾鏋佸叿瀛︽湳鐮旂┒浠峰煎拰宸ヤ笟浠峰箋傚拰C璇█涓鏍鳳紝C++宸茬粡鍦ㄨ澶氶噸瑕佺殑棰嗗煙澶ц幏鎴愬姛銆?</font> <p> <font face="Verdana">鐒惰岋紝涓涓笉鍙惁璁ょ殑鐜板疄鏄紝鍦ㄤ綆闃剁▼搴忚璁¢鍩燂紝C++鎸ゅ帇鐫C鍚屾椂涔熷湪鎵垮彈鐫C鐨勫己鐑堝弽寮癸紝鑰屽湪楂橀樁紼嬪簭璁捐棰嗗煙錛孞ava鍜孋#姝e湪涓嶆柇铓曢鐫C++鐨勫湴鐩樸備篃璁窩++涓嶤鍚堜負涓浣撴案榪滈兘鏄竴涓ⅵ鎯籌紝涔熻Java鍜孋#鐨勭媯娼粓灝嗚揩浣緾++鍥炲綊鏈綅 鈥?鍥炲埌瀹冩湁鐫鏍規湰鎬т紭鍔跨殑寮鍙戦鍩燂細浣庣駭緋葷粺紼嬪簭璁捐銆侀珮綰уぇ瑙勬ā楂樻ц兘搴旂敤璁捐銆佸祵鍏ュ紡紼嬪簭璁捐浠ュ強鏁板肩瀛﹁綆楃瓑銆傛灉鐪熷姝わ紝鎴戣涓鴻繖鏈皾涓嶆槸涓浠跺ソ浜嬨?</font> </p> <p> <font face="Verdana">C++鍚稿紩濡傛涔嬪鐨勬櫤鍔涙姇鍏ワ紝浠ヨ嚦浜庤繖涓鍩熺殑浼樼浣滃搧錛屽寘鎷噸閲忕駭鐨勮蔣浠朵駭鍝併佺▼搴忓簱浠ュ強涔︾睄絳夛紝鏁頒笉鑳滄暟銆傛枃棰樷淐++紼嬪簭璁捐涔嬪洓涔︿簲緇忊濅竴涓笉澶弗鏍肩殑鍚箟鏄細C++紼嬪簭璁捐涔嬪洓涔?鈪?浜旂粡銆傛槸鐨勶紝鍦ㄦ湰鏂囷紙鍙婂叾涓嬬瘒錛変腑錛屾垜灝嗗垎闂ㄥ埆綾繪帹鑽?0澶氭湰C++濂戒功錛屼綘鍙互鏍規嵁鑷繁鐨勯渶瑕侀夎銆?</font> </p> <p> <font face="Verdana">TCPL鍜孌&E </font> </p> <p> <font face="Verdana">TCPL鍜孌&E鍒嗗埆鏄奣he C++ Programming Language銆嬪拰銆奣he Design and Evolution of C++銆嬬殑綆縐幫紝鍧囧嚭鑷狟jarne Stroustrup涔嬫墜銆傛垜灝嗗畠浠崟鍒楀嚭鏉ワ紝棣栧厛鏄洜涓築jarne鏄疌++璇█鐨勫垱寤鴻咃紝鐒跺悗鏄洜涓烘瘮鈥滈鍏堚濋偅涓師鍥犳洿閲嶈鐨勫師鍥狅細榪欎袱鏈功鏄疌++棰嗗煙姣嬪焊緗枒鐨勬澃浣溿傝瀹冧滑鏄疌++璇█鍦g粡錛屽茍涓嶄負榪囥?</font> </p> <p> <font face="Verdana">Bjarne Stroustrup, The C++ Programming Language (Special 3rd Edition) <br />銆奀++紼嬪簭璁捐璇█錛堢壒鍒増錛夈嬶紝鏈烘宸ヤ笟鍑虹増紺?<br />銆奀++紼嬪簭璁捐璇█錛堢壒鍒増錛夛紙鑻辨枃褰卞嵃鐗堬級銆嬶紝楂樼瓑鏁欒偛鍑虹増紺?</font> </p> <p> <font face="Verdana">榪勪粖涓烘錛孴CPL鏄櫎浜咰++鏍囧噯鏂囩尞涔嬪鏈鏉冨▉鐨凜++鍙傝冩墜鍐屻傚拰澶у鏁頒漢鐨勭湅娉曚笉澶т竴鏍鳳紝鎴戣涓築jarne鐨勬枃瀛楄璦騫朵笉閫婅壊浜庝粬鎵鍒涘緩鐨勭▼搴忚璦錛岃嚦灝戞垜鍠滄榪欑瀛﹂櫌姘旀伅嫻撳帤鐨勪綔鍝併傛湰涔﹀C++璇█鐨勬弿榪拌疆寤撻矞鏄庛佺洿鎴簡褰撱傚畠浠嶤++璇█鍒涘緩鑰呯殑瑙掑害鏉ヨ瀵烠++錛岃繖鏄換浣曞埆鐨勪綔鑰呭拰涔︾睄鍋氫笉鍒扮殑 鈥?娌℃湁浠諱綍浜烘瘮Bjarne鑷繁鏇存竻妤氳鎬庝箞鏉ヤ嬌鐢–++銆?</font> </p> <p> <font face="Verdana">榪欐槸涓鏈弗鑲冪殑钁椾綔錛屼互涓侀珮綰++寮鍙戜漢鍛樹負鐩爣璇昏呫傚鏋滀綘鏄竴鍚嶆湁緇忛獙鐨凜++紼嬪簭鍛橈紝闇瑕佷簡瑙f洿鍔犳湰璐ㄧ殑C++鐭ヨ瘑錛屾湰涔︽鏄負浣犺屽啓銆傚畠涓嶆槸閭g璁╀綘鐪嬩簡浼氫笉鏂獌鍠滅殑灝忎功錛岄渶瑕佺敤蹇冧綋浼氾紝鍙嶅鍜鍤箋傚湪闃呰榪囩▼涓紝璇風壒鍒暀蹇傿jarne鍏堢敓寮鴻皟浜嗕粈涔堬紝鍙堝浠涔堜竴璇甫榪囥傛垜涓漢姣旇緝鍠滄榪欐湰涔︾殑絎洓閮ㄥ垎鈥滀嬌鐢–++鍋氳璁♀濓紝榪欐牱鐨勫唴瀹瑰湪綾諱技鐨勭▼搴忚璁¤璦涔︾睄涓緢闅劇湅鍒?鈥?鎴戠敋鑷寵涓築jarne搴旇灝嗚繖閮ㄥ垎鐙珛鍑烘潵鍗曠嫭鍐欎竴鏈功銆?</font> </p> <p> <font face="Verdana">Bjarne Stroustrup, The Design and Evolution of C++ <br />銆奀++璇█鐨勮璁″拰婕斿寲銆嬶紝鏈烘宸ヤ笟鍑虹増紺?<br />銆奀++璇█鐨勮璁″拰婕斿寲錛堣嫳鏂囩増錛夈嬶紝鏈烘宸ヤ笟鍑虹増紺?</font> </p> <p> <font face="Verdana">D&E鏄竴鏈叧浜嶤++璇█璁捐鍘熺悊銆佽璁″喅絳栧拰璁捐鍝插鐨勪笓钁椼傚畠娓呮櫚鍦板洖絳斾簡C++涓轟粈涔堜細鎴愪負浠婂ぉ榪欎釜鏍峰瓙鑰屾病鏈夊彉鎴愬彟澶栦竴縐嶈璦銆備綔涓篊++璇█鐨勫垱寤鴻咃紝Bjarne娣嬫紦灝借嚧鍦板睍紺轟簡浠栫嫭鍒拌屾繁鍒葷殑瑙佽В銆傞櫎浜嗗箍鍙楄禐瑾夌殑璇█鐗規у錛孊jarne娌℃湁鍥為伩閭d簺寮曡搗浜夎鐨勭敋鑷寵鎷掔粷鐨凜++鐗規э紝浠栦竴涓緇欏嚭浜嗛昏緫涓ュ瘑銆佷護浜轟俊鏈嶇殑瑙i噴銆傚唴瀹規兜鐩朇++鐨勫彶鍓嶆椂浠c佸甫綾葷殑C銆丆++鐨勮璁¤鍒欍佹爣鍑嗗寲銆佸簱銆佸唴瀛樼鐞嗐佸閲嶇戶鎵褲佹ā鏉跨瓑錛屽鍖呮嫭寮傚父鏈哄埗銆佽繍琛屾椂綾誨瀷淇℃伅鍜屽悕瀛楃┖闂村湪鍐呯殑閲嶈鐨勬柊鐗規ч兘鍒嗗埆榪涜浜嗘繁鍏ユ帰璁ㄣ傛瘡涓鍚岰++紼嬪簭鍛橀兘搴旇鍙互浠嶣jarne鐨勯槓閲婁腑鍔犳繁瀵規墜涓繖闂ㄨ璦鐨勮璇嗐?</font> </p> <p> <font face="Verdana">闇瑕佸啀嬈℃彁閱掔殑鏄紝榪欎袱鏈功鐭ヨ瘑嫻撶緝錛屼俊鎭噺鏋佸ぇ錛岃涓嶈閿欒繃Bjarne姣忎竴鍙ョ湅浼兼極涓嶇粡鎰忕殑璇濄?</font> </p> <p> <font face="Verdana">鍏ラ棬鏁欑▼ </font> </p> <p> <font face="Verdana">瀛︿範浠諱綍涓闂ㄨ璦閮介渶瑕佷竴涓粠鍏ラ棬鍒扮簿閫氥佷粠鏂版墜鍒伴珮鎵嬪驚搴忔笎榪涚殑榪囩▼銆備笉榪囷紝瀵逛簬涓涓墍璋撶殑鏂版墜鑰岃█錛岀┒绔熸槸涓涓畬瀹屽叏鍏ㄧ殑鏂版墜錛岃繕鏄竴涓啛鎮夋煇縐嶅埆鐨勮璦鐨勨滄柊鎵嬧濓紝鐢氳嚦鏄湪鏌愮璇█紼嬪簭璁捐棰嗗煙宸茬粡棰囨湁寤烘爲鐨勯珮鎵嬶紝寰堥毦涓姒傝岃錛熶笉鍚岀殑C++鏂版墜闇瑕佷笉鍚岀殑鍏ラ棬涔︾睄銆?</font> </p> <p> <font face="Verdana">Andrew Koenig, Barbara E. Moo, Accelerated C++: Practical Programming by Example <br />銆夾ccelerated C++涓枃鐗堛嬶紝涓浗鐢靛姏鍑虹増紺?</font> </p> <p> <font face="Verdana">鍜屽競闈笂澶у鏁癈++鏁欑▼涓嶅悓錛屾湰涔︿笉鏄粠鈥淐++涓殑C鈥濆紑濮嬭瑙o紝鑰屾槸濮嬩簬鍦伴亾鐨凜++鐗規с備粠涓寮濮嬪氨浣跨敤鏍囧噯搴撴潵鍐欑▼搴忥紝闅忕潃璁茶堪鐨勯愭笎娣卞叆錛屽張涓涓瑙i噴榪欎簺鏍囧噯搴撶粍浠舵墍渚濊禆鐨勫熀紜姒傚康銆傚彟澶栵紝鍜屽叾浠朇++鏁欐潗涓嶅悓鐨勬槸錛岃繖鏈功浠ュ疄渚嬫媺鍔ㄨ璦鍜屾爣鍑嗗簱鐨勮瑙o紝瀵瑰悗涓よ呯殑璁茶В鏄負浜嗙粰瀹炰緥紼嬪簭鎻愪緵鏀寔錛岃屼笉鏄儚緇濆ぇ澶氭暟C++鏁欐潗閭f牱錛屼緥瀛愬彧鏄敤浣滄紨紺鴻璦鐗規у拰鏍囧噯搴撶敤娉曠殑杈呭姪宸ュ叿銆?</font> </p> <p> <font face="Verdana">浣滆呭湪C++棰嗗煙鐨勭紪紼嬪疄璺點佹暀鑲插煿璁互鍙婃妧鏈啓浣滄柟闈㈤兘鏄笘鐣屼竴嫻佹按鍑嗐傛垜鍠滄榪欑澶ч噺浣跨敤鏍囧噯搴撳拰C++璇█鍘熺敓鐗規х殑娓呮柊鐨勫啓浣滈鏍箋傚湪榪欐湰鏁欐潗闈㈠墠錛屽嚑涔庤縿浠婁負姝㈢殑鎵鏈塁++鏁欐潗閮介化鐒跺け鑹叉垨鏄懼緱榪囨椂銆傚敖綆¤繖鏈暀鏉愪篃璁稿浜庡浗鍐呯殑楂樻牎鏁欒偛鏉ヨ鏈変簺鍓嶅崼錛屼笉榪囨垜浠嶇劧鏋佸姏鍚戞垜鐨勫悓琛屼滑鎺ㄨ崘銆傞『甯︿竴鎻愶紝鍦˙jarne鍜屾垜鏈榪戠殑涓灝侀氫俊閲岋紝浠栬繖鏍瘋瘎浠鋒湰涔︼細瀵逛簬鏈夌粡楠岀殑紼嬪簭鍛樺涔燙++鑰岃█錛岃繖鏈功鍙兘鏄笘鐣屼笂鏈濂界殑涓鏈?</font> </p> <p> <font face="Verdana">Stanley B.Lippman, Josee Lajoie, C++ Primer (3rd Edition) <br />銆奀++ Primer (3RD)涓枃鐗堛嬶紝涓浗鐢靛姏鍑虹増紺?</font> </p> <p> <font face="Verdana">榪欐湰涔︾殑鍚嶅瓧澶氬皯鏈夌偣璁╀漢璇В銆傚敖綆′綔鑰呭0縐拌繖鏈功鏄負C++鏂版墜鑰屽啓錛屼絾鏃犺鏄畠鐨勫帤搴﹁繕鏄瑙g殑娣卞害閮芥毚闇蹭簡浼間箮騫墮潪濡傛銆備篃璁歌瀹冩槸涓鏈滀粠鍏ラ棬鍒扮簿閫氣濈殑C++鏁欑▼浼氭洿鍚堥備竴浜涖傛垜涓漢璁や負瀹冨茍涓嶉傚悎瀹屽叏涓嶆噦C++鐨勫垵瀛﹁?鈥?鍦ㄩ槄璇昏繖鏈功涔嬪墠錛屼綘鑷沖皯搴旇鍏堟湁閭d箞涓鐐笴鎴朇++鐨勮儗鏅煡璇嗭紝鎴栬呰嚦灝戣鍏鋒湁涓浜涘叾浠栬璦鐨勭紪紼嬬粡楠屻?</font> </p> <p> <font face="Verdana">灝界榪欐湰涔︾渷鐣ヤ簡涓浜涢珮綰++鐗規х殑璁ㄨ錛屼絾浠嶇劧鍙互縐板緱涓婃槸榪勪粖涓烘鏈鍏ㄩ潰鐨凜++瀛︿範鏁欑▼銆備簨瀹炰笂錛屽鏋滀竴鍚岰++鍒濆鑰呰兘澶熸墡鎵庡疄瀹炲湴璇誨畬鏈功騫跺鐓с奀++ Primer Answer Book銆嬪畬鎴愬叏閮ㄤ範棰樼殑璇濓紝浠栫殑姘村鉤鑲畾鍙互榪涘叆鑱屼笟C++紼嬪簭鍛樼殑琛屽垪銆傛垜涓漢璁や負錛屽嵆浣夸綘宸茬粡鎷ユ湁浜員CPL錛岃繖鏈功渚濈劧鏈夋嫢鏈夌殑浠峰鹼紝鍥犱負鍦ㄨ澶氭柟闈㈠畠姣擳CPL鏉ュ緱鏇磋緇嗐佹洿鏄撴噦銆?</font> </p> <p> <font face="Verdana">Stanley B. Lippman, Essential C++ <br />銆奅ssential C++涓枃鐗堛嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?<br />銆奅ssential C++錛堝獎鍗扮増錛夈嬶紝涓浗鐢靛姏鍑虹増紺?</font> </p> <p> <font face="Verdana">鍙互涓嶅お涓ユ牸鍦拌涓鴻繖鏈功鏄奀++ Primer銆嬬殑綺劇畝鐗堛傛湰涔︿竴涓璁茶堪浜咰++涓渶鍏蜂唬琛ㄦх殑涓婚錛屽寘鎷繃紼嬪紡緙栫▼銆佹硾鍨嬬紪紼嬨佸熀浜庡璞$紪紼嬨侀潰鍚戝璞$紪紼嬨佹ā鏉跨紪紼嬩互鍙婂紓甯稿鐞嗙瓑銆係tanley灝嗛棬妲涜皟浣庡埌鈥滃叿鏈夊叾浠栬璦紼嬪簭璁捐緇忛獙鈥濈殑C++鏂版墜鎵鑳芥帴鍙楃殑鏈鍩烘湰鐨勫眰嬈★紝浣夸粬浠兘澶熻繀閫熷紑濮嬩嬌鐢–++緙栫▼鑰屽張鍏嶄簬闃呰銆奀++ Primer銆嬮偅鏍風殑澶ч儴澶淬傚畠浠ュ疄渚嬪紩瀵煎涔狅紝鍔涘浘浣胯鑰呭湪鏈鐭殑鏃墮棿鍐呮妸鎻++鐨勭簿綺廣?</font> </p> <p> <font face="Verdana">涔熻鎹竴涓漢鏉ユ榪癈++緙栫▼鑼冨瀷錛坧aradigm錛夌殑鏂規柟闈㈤潰闇瑕佸ソ鍑犵櫨欏墊墠鑳借娓呮錛屼絾榪欐湰灝忎功涓嶅彲鎬濊鍦板仛鍒頒簡榪欎竴鐐廣傛垜涓漢闈炲父鍠滄榪欑婊℃槸鎶鏈佺畝鏄庢壖瑕佸茍涓斺滄湁璇濆ソ濂借鈥濈殑涔︺傝繖鏈功鍚屾牱鍏鋒湁涓涓槑鏄劇殑椋庢牸錛氭墍鏈夌▼搴忎緥瀛愬叏閮ㄩ噰鐢ㄦ爣鍑嗗簱緇勪歡錛岃浜鴻崇洰涓鏂般?</font> </p> <p> <font face="Verdana">浠ヤ笂涓夋湰涔﹂兘涓嶆槸涓轟簡瀹屽畬鍏ㄥ叏鐨勭紪紼嬫柊鎵嬭屽啓銆傚畬鍏ㄧ殑C++緙栫▼鏂版墜鍙互闃呰Francis Glassborow鐨勬柊涔︼紙灝氭湭鍑虹増錛夛細銆夾 Beginners Introduction to Computer Programming : You Can Do It!銆嬨傝繖涔熸槸Bjarne鐨勬帹鑽愩侳rancis Glassborow鏄疉CCU涓誨腑錛屽騫存潵浠栧鍑犱箮姣忎竴鏈珻++緇忓吀鍚嶈憲璇勫ご璁鴻凍錛屼粬鑷繁鐨勮繖涓鏈嚜鐒朵細寮曡搗C++紺劇兢鐨勬瀬澶у叴瓚c?</font> </p> <p> <font face="Verdana">楂樻晥銆佸仴澹紪紼?</font> </p> <p> <font face="Verdana">涓ゅ勾鍓嶆垜鍦ㄨ礋璐d竴涓渷綰х數鍔涜皟搴︾郴緇熼」鐩椂緙栧啓浜嗕竴涓綉鍏崇▼搴忥紝瀹冧粠SCADA緋葷粺鑾峰彇鐢靛姏瀹炴椂淇℃伅銆傞氳鎺ュ彛閲囩敤浜嗕笉甯哥敤鐨勬暟鎹簱鐩磋繛鏂瑰紡錛堣繖涓綉鍏崇▼搴忎竴绔繛鎺QL Server 6.5錛屽彟涓绔繛鎺ralce 8.1.6錛夈傜敱浜庡疄鏃舵祴鐐硅繎涓囷紝姣忔灝嗗叏閮ㄥ彇鏍鋒洿鏂版垨鎻掑叆涓閬嶆樉鐒舵槸浣庢晥鐨勩傛垜鍦ㄧ綉鍏崇▼搴忛噷寤轟簡涓涓唴瀛樺簱錛岃幏鍙栧埌鐨勬暟鎹鍏堝湪鍏朵腑榪涜姣旇緝錛岀劧鍚庡喅瀹氭槸鍚︽洿鏂扮墿鐞嗘暟鎹簱錛堝悓鏃惰繕鍋氫簡鍒殑鏇村鏉傜殑浜嬫儏鈥︹︼級錛屼粠鑰屽湪鏁堢巼鍜岃祫婧愬崰鐢ㄤ袱鏂歸潰杈懼埌浜嗛鏈熸晥鏋溿?</font> </p> <p> <font face="Verdana">榪欎釜紼嬪簭涓鐩磋繍琛屽緱寰堝ソ錛屼絾鍦ㄧ寮鐜板満涔嬪悗鐨勬煇涓澶╋紝緋葷粺綆$悊鍛樻墦鏉ョ數璇濓紝璇村ぇ姒傚洜涓虹綉緇滄晠闅滅瓑鍘熷洜錛屾湁鏃惰繖涓綉鍏崇▼搴忎細宕╂簝鎺?鈥?瀹冭嚜宸卞穿鎺変篃灝辯艦浜嗭紝闂鏄畠榪樹細鎶奧indows 2000 Advanced Server鎼炴垚鈥滆摑灞忊濓紒鍧︾櫧鍦拌錛屾垜榪樹粠鏉ユ病鐪嬭繃鍝釜闈炶搫鎰忕殑紼嬪簭鏈夎繖涓滆兘鑰愨濄傜敱浜庡綋鏃舵蹇欎簬鍙﹀涓涓ぇ欏圭洰錛屾棤娉曞幓鐜板満璋冭瘯錛屾渶鍚庡彧鏈夊嚟緇忛獙瀵瑰唴瀛樺簱浠g爜灝忓績緲肩考鍦板皝瑁呬互寮傚父澶勭悊浠g爜錛堝悓鏃朵篃鍋氫簡涓浜涘埆鐨勪慨鏀光︹︼級銆傝繖鏍鳳紝铏界劧娌℃湁褰誨簳瑙e喅闂錛屼絾紼嬪簭緇堢┒涓嶅啀姝誨緱閭d箞闅劇湅浜嗐?</font> </p> <p> <font face="Verdana">鍦ㄨ繖鍎胯榪欎箞涓孌佃姳緄湁浠涔堟剰鎬濆憿錛堝綋鍒濅負閭d釜鍙曠殑bug鏈濇濇毊鎯蟲椂鎴戝彲涓嶈涓鴻繖鏄竴涓滆姳緄濓級錛熸垜鎯寵鐨勬槸錛屽浜庝換浣曡蔣浠惰岃█錛岀寮寮哄仴錛屾晥鐜囦篃灝辨棤浠庤皥璧楓傝屽浜嶤++紼嬪簭鍛樻潵璇達紝涔熻緙栧啓涓涓珮鏁堢殑紼嬪簭騫朵笉闅撅紝浣嗚緙栧啓涓涓渶瑕? 鈪?24灝忔椂鎸佺畫榪愯鐨勬湇鍔$杞歡灝變笉鏄偅涔堝鏄撲簡錛岄渶瑕佽冭檻璁稿鍥犵礌錛屾湁鏃惰繖浜涘洜绱犵敋鑷寵繙榪滆秴鍑篊++璇█鍜屽紑鍙戝伐鍏風殑鏈韓銆備綔涓轟竴鍚嶅紑鍙戝疄闄呴」鐩蔣浠剁殑紼嬪簭鍛橈紝騫墮潪闈炲緱鑷繁紕伴拤瀛愭墠鑳界Н绱粡楠岋紝鍙鎴戜滑瓚沖铏氬績錛屽埆浜虹殑緇忛獙寰寰閮芥槸鎴戜滑寰堝ソ鐨勫熼壌銆傞壌浜庢錛屾垜鎺ㄨ崘浠ヤ笅鍑犳湰涔︿緵浣犻夎錛屽畠浠彲浠ヨ浣犱粠寮哄仴鍜屾晥鐜囦袱鏂歸潰鍙楃泭錛堝綋鐒朵簡錛屽畠浠兜鐩栫殑鍐呭榪滀笉闄愪簬寮傚父澶勭悊J錛夈?</font> </p> <p> <font face="Verdana">Scott Meyers, Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition) <br />Scott Meyers, More Effective C++: 35 New Ways to Improve Your Programs and Designs <br />銆奅ffective C++涓枃鐗堛嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?<br />銆奙ore Effective C++涓枃鐗堛嬶紝涓浗鐢靛姏鍑虹増紺?<br />銆奅ffective C++錛堝獎鍗扮増錛夈嬶紝涓浗鐢靛姏鍑虹増紺?</font> </p> <p> <font face="Verdana">濡傛灉璇淬奅ffective C++銆嬩富瑕佽璁篊++涓竴浜涚浉瀵瑰熀紜鐨勬蹇靛拰鎶宸х殑璇濓紝閭d箞銆奙ore Effective C++銆嬪垯鐫閲嶆帰璁ㄤ簡鍖呮嫭寮傚父澶勭悊鍦ㄥ唴鐨勪竴緋誨垪楂樼駭鎶鏈備笌鍓嶈呯浉姣旓紝鍚庤呭叿鏈変袱澶т富瑕佸尯鍒細鍏朵竴錛屽畠鍖呭惈寰堝鏃舵柊鐨勬爣鍑咰++鐨勫唴瀹癸紱絎簩錛屽畠璁ㄨ鐨勪富棰樺懼悜浜庘滄垬鐣ュ寲鈥濊岄潪鈥滄垬鏈寲鈥濓紝騫朵笖璁ㄨ寰楁洿娣卞叆銆佹洿褰誨簳銆傚挨鍏舵槸瀵硅櫄鏋愭瀯鍑芥暟銆佹櫤鑳芥寚閽堛佸紩鐢ㄨ鏁頒互鍙婁唬鐞嗙被錛坧roxy classe錛夌瓑鎶鏈拰妯″紡璁鴻堪鐨勬繁鍏ョ▼搴︼紝璁╀漢寰堥毦鎯寵薄鏄嚭鐜頒簬榪欐牱鐨勪竴鏈皬涔︿箣涓?</font> </p> <p> <font face="Verdana">娓稿垉鏈変綑鐨勬妧鏈紝楂樿秴鐨勫啓浣滄妧宸э紝Scott鏃犵枒鏄笘鐣屼笂鏈浼樼鐨凜++鎶鏈綔瀹朵箣涓銆傚湪綆媧併佹竻鏅般佹槗璇葷瓑鏂歸潰錛岃繖涓ゆ湰涔﹂兘鍗撳皵涓嶇兢銆傛諱箣錛孲cott鎻愪緵鐨勮繖85涓彲浠ユ敼鍠勭紪紼嬫妧鏈拰璁捐鎬濈淮鐨勬柟娉曪紝閮芥槸涓侀珮綰++紼嬪簭鍛樺繀澶囩殑鎶鑳姐傛垜寮虹儓鎺ㄨ崘榪欎袱鏈功錛堝疄闄呬笂榪樻湁涓鏈紝紼嶅悗灝變細鐪嬪埌錛夈?</font> </p> <p> <font face="Verdana">Herb Sutter, Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions <br />Herb Sutter, More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions <br />銆奅xceptional C++涓枃鐗堛嬶紝涓浗鐢靛姏鍑虹増紺?<br />銆奙ore Exceptional C++涓枃鐗堛嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?</font> </p> <p> <font face="Verdana">浣犺嚜璁や負鏄竴鍚岰++璇█涓撳鍚楋紵璇諱竴璇籌SO C++鏍囧噯濮斿憳浼氱涔﹂暱鐨勮繖涓ゆ湰涔﹀啀鍥炵瓟銆傚湪榪欎袱鏈功涓紝Herb閲囩敤浜嗏滈棶絳斺濈殑鏂瑰紡鎸囧浣犲涔燙++璇█鐗規с傚浜庢瘡涓涓笓棰橈紝Herb棣栧厛鍚堢悊鍦拌鎯沖嚭浣犵殑鐤戦棶鍜屽洶鎯戯紝鎺ョ潃鍙堢寽嫻嬪嚭浣犲崄鏈夊叓涔濇槸閿欒鐨勮В絳旓紝鐒跺悗緇欎綘浠ユ寚鐐瑰茍鎻愬嚭鏈浣寵В鍐蟲柟妗堬紝鏈鍚庤繕褰掔撼鍑鴻В鍐崇被浼奸棶棰樼殑鏅傛у師鍒欍?</font> </p> <p> <font face="Verdana">榪欎袱鏈功鏄吀鍨嬬殑娣辯┒C++璇█緇嗚妭鐨勮憲浣滐紝寰堣杽錛屼絾鍐呭瀵嗛泦錛岃繙榪滆秴榪嘢cott鐨勯偅涓ゆ湰涔︼紝璇昏搗鏉ュ緢璐硅剳絳?鈥?鎴戜釜浜鴻涓哄畠浠姣擲cott鐨勪功闅炬噦寰楀銆傝嫢瑕佺爺涔犺繖钖勮杽鐨勪袱鏈功鎵鍖呭惈鐨勭煡璇嗭紝鑷沖皯闇瑕佽姳璐規暟鏈堢殑鏃墮棿錛侊紙鍦⊿cott鐨勮崘搴忎腑錛屼粬鍧﹂檲涓嶆涓嬈¢櫡鍏otW闂鐨勯櫡闃憋紝浣犲簲璇ョ煡閬撹繖鎰忓懗鐫浠涔堬級瀵逛簬璇█緇嗚妭鐨勬繁絀舵湁浠涔堝ソ澶勫憿錛熷敖綆″湪澶у鏁版儏鍐典笅錛屾垜浠笉蹇呭叧蹇僀++浠g爜騫曞悗鐨勫姩浣滐紝鐒惰屽綋鎴戜滑涓嶅緱涓嶅叧蹇冩椂錛岃繖涓ゆ湰涔﹀彲浠ヤ負鎴戜滑鎻愪緵寰堝ソ鐨勭嚎绱紝鍥犱負瀹冧滑鎻ず浜咰++璇█涓井濡欒屽張鑷沖叧閲嶈鐨勪笢瑗褲?</font> </p> <p> <font face="Verdana">Stephen C. Dewhurst, C++ Gotchas: Avoiding Common Problems in Coding and Design <br />銆奀++紼嬪簭璁捐闄烽槺銆嬶紝涓浗闈掑勾鍑虹増紺?</font> </p> <p> <font face="Verdana">Stephen鐨勭悊璁虹礌鍏誨拰瀹炶返緇忛獙娉ㄥ畾榪欐槸涓鏈煎緱涓璇葷殑濂戒功銆係tephen鏇劇粡鏄礉灝斿疄楠屽涓涓鎵笴++浣跨敤鑰呫備粬宸茬粡浣跨敤C++鎴愬姛瑙e喅浜嗗寘鎷紪璇戝櫒銆佽瘉鍒鎬氦鏄撱佺數瀛愬晢鍔′互鍙婂祵鍏ュ紡緋葷粺絳夐鍩熶腑鐨勯棶棰樸傛湰涔︽眹闆嗕簡浣滆呮潵鑷紑鍙戜竴綰跨殑99鏉$紪紼嬬湡鐭ョ伡瑙侊紝媧炴倝瀹冧滑錛屼綘鍙互閬垮厤鍑犱箮鎵鏈夊父瑙佺殑C++璁捐鍜岀紪紼嬮棶棰樸?</font> </p> <p> <font face="Verdana">鎴戠敋鑷寵涓猴紝瀵逛簬C++緙栫▼鑿滈笩鑰岃█錛岄槄璇昏繖鏈功浼氭瘮闃呰Scott鍜孒erb鐨勪功鏇磋兘杞繪澗鑰岀珛绔胯褰卞湴鑾峰緱鏇村ぇ鐨勬彁楂樸傛垜涓漢寰堝枩嬈㈣繖鏈功鐨勫啓浣滈鏍?鈥?Stephen鐨勮澶氳鐐圭湅浼兼瀬绔嵈鏃犲彲杈╅┏銆傚綋鐒朵簡錛岃繖縐嶈嚜淇★紙浠ュ強鍐峰菇榛橈級鏉ヨ嚜浜庝綔鑰呮繁鍘氱殑鎶鏈礌鍏伙紝鑰岄潪鑷ぇ鐨勫亸鎵с?</font> </p> <p> <font face="Verdana">闄や簡涓婇潰鎺ㄨ崘鐨勪功綾嶅錛孌ov Bulka鍜?David Mayhew鍚堣憲鐨勩奅fficient C++: Performance Programming Techniques銆嬶紙銆婃彁楂楥++鎬ц兘鐨勭紪紼嬫妧鏈嬶紝娓呭崕澶у鍑虹増紺撅級涔熷煎緱涓鐪嬨傝繖鏈秴钖勫皬涔﹁仛鐒︿簬楂樻ц兘C++搴旂敤紼嬪簭寮鍙戙備袱浣嶄綔鑰呴兘鏄疘BM杞歡涓撳錛岄兘宸ヤ綔浜庡鎬ц兘瑕佹眰鏋侀珮鐨勭郴緇熸瀯寤洪鍩燂紝鏈功鏄粬浠殑緇忛獙涔嬭皥銆備篃鏈変漢涓嶅枩嬈㈣繖鏈功錛屽洜涓哄畠鑺變簡涓嶅皯鐨勭瘒騫呰榪板拰C++鏃犲叧鐨勪笢瑗匡紝鎴戝嵈鎭版伆鍥犱負榪欎竴鐐硅屽榪欐湰涔︿駭鐢熷ソ鎰燂紝姝f槸榪欎簺涓滆タ璁╂垜寮闃斾簡鐪肩晫銆?</font> </p> <p> <font face="Verdana">妯℃澘鍜屾硾鍨嬬紪紼?</font> </p> <p> <font face="Verdana">妯℃澘鍜屽熀浜庢ā鏉跨殑娉涘瀷緙栫▼鏃犵枒鏄綋浠婂彂灞曟渶媧昏穬鐨凜++紼嬪簭璁捐鎶鏈傛ā鏉跨殑絎竴涓潻鍛芥х殑搴旂敤鏄疭TL錛屽畠灝嗘ā鏉挎妧鏈湪娉涘瀷瀹瑰櫒鍜岀畻娉曢鍩熺殑榪愮敤灞曠幇寰楁穻婕撳敖鑷達紝鑰孊oost銆丩oki絳夌幇浠g▼搴忓簱鍒欏皢妯℃澘鎶鏈殑娼滆兘涓嶆柇鍙戞尌鍒版瀬鑷淬傚湪妯℃澘鍜屾硾鍨嬬紪紼嬮鍩燂紝鎴戞帹鑽愪互涓嬩袱鏈噸閲忕駭钁椾綔錛?</font> </p> <p> <font face="Verdana">David Vandevoorde, Nicolai M. Josuttis, C++ Templates: The Complete Guide <br />銆奀++ Templates鍏ㄨ錛堢箒浣撶増錛夈嬶紝鍙版咕紕佸嘲璧勮鑲′喚鏈夐檺鍏徃 <br />銆奀++ Templates鍏ㄨ錛堢畝浣撶増錛夈嬶紝浜烘皯閭數鍑虹増紺?</font> </p> <p> <font face="Verdana">鏈変竴縐嶈佸鐨勮禐緹庝竴鏈功鐨勬墜娉曪紝澶ц嚧鏄滄病鏈夌湅榪囪繖鏈功錛屼綘灝辨庝箞鎬庝箞鍦扳濓紝榪欓噷闈㈠線寰澶稿紶鐨勬垚鍒嗗眳澶氥備笉榪囷紝鍊樿嫢璇粹滄病鏈夌湅榪囥奀++ Templates: The Complete Guide銆嬶紝浣犲氨涓嶅彲鑳界簿閫欳++妯℃澘緙栫▼鈥濓紝閭d箞榪欎釜璁烘柇瀵逛簬涓栫晫涓婄粷澶у鏁癈++紼嬪簭鍛樻潵璇存槸鎴愮珛鐨勩?</font> </p> <p> <font face="Verdana">榪欐湰涔﹀~琛ヤ簡C++妯℃澘涔︾睄棰嗗煙鐢辨潵宸蹭箙鐨勭┖鐧姐傛鍓嶏紝涓婃湁銆奙odern C++ Design銆嬭繖鏍風殑涓撴敞浜庢ā鏉塊珮綰х紪紼嬫妧鏈拰娉涘瀷妯″紡鐨勮憲浣滐紝涓嬫湁銆奣he C++ Standard Library銆嬭繖鏍風殑閽堝鐗瑰畾妯℃澘妗嗘灦鍜岀粍浠剁殑浣跨敤鎸囧崡銆傜劧鑰岋紝鍋囧瀵規ā鏉挎満鍒剁己涔忔繁鍏ョ殑鐞嗚В錛屼綘灝卞緢闅鋸滀笂涓嬧濊嚜濡傘傞壌浜庢錛屾垜鍚戞瘡涓浣嶆復鏈涢忓交鐞嗚ВC++妯℃澘鎶鏈殑鏈嬪弸鎺ㄨ崘榪欐湰涔︺?</font> </p> <p> <font face="Verdana">榪欐湰涔﹀湪鍐呭湴銆佸彴婀懼悇鏈変竴涓瘧鏈紝浣嗗嚭鑷笉鍚岀殑璇戣呬箣鎵嬨傚綋浣犵湅鍒拌繖綃囨枃绔犳椂錛屼袱涓瘧鏈簲璇ラ兘宸茬粡涓婂競錛屽浜庤鑰呮潵璇村綋鐒朵篃灝卞浜嗕竴縐嶉夋嫨銆備警鎹峰厛鐢熶釜浜虹綉绔欎笂寮鏀句簡綣佷綋璇戞湰澶ч儴鍒嗙珷鑺傦紝涓嶅Θ鍏堢澒涓哄揩銆?</font> </p> <p> <font face="Verdana">Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Patterns Applied <br />銆奀++璁捐鏂版濈淮錛氭硾鍨嬬紪紼嬩笌璁捐妯″紡涔嬪簲鐢ㄣ嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?<br />銆奀++璁捐鏂版濈淮錛堝獎鍗扮増錛夈嬶紝涓浗鐢靛姏鍑虹増紺?</font> </p> <p> <font face="Verdana">浣犺嚜璁や負鏄疌++妯℃澘緙栫▼楂樻墜鍚楋紵璇風湅榪囪繖鏈功鍐嶅洖絳擩 榪欐槸涓鏈嚭鑷ぉ鎵嶄箣鎵嬩護浜烘暚鐣忕殑鏉頒綔銆傛硾鍨嬫ā寮忥紝鏃犻檺寤朵幾浣犵殑瑙嗛噹錛岃凍浠ユ寫鎴樹換浣曚竴鍚岰++紼嬪簭鍛樼殑鎬濈淮鏋侀檺銆?</font> </p> <p> <font face="Verdana">榪欐湰涔﹀叡鍒嗕負涓ゅぇ閮ㄥ垎錛岀涓閮ㄥ垎璁ㄨ浜?Loki紼嬪簭搴撻噰鐢ㄧ殑鍩虹鎶鏈互鍙婁竴浜涢珮綰ц璦鐗規э紝鍖呮嫭鍩轟簬絳栫暐鐨勭被璁捐銆佹ā鏉垮眬閮ㄧ壒鍖栥佺紪璇戞湡鏂█銆乀ypelist浠ュ強灝忓瀷瀵硅薄鍒嗛厤鎶鏈瓑銆傜浜岄儴鍒嗗垯鐫閲嶄粙緇嶄簡Loki涓殑閲嶈緇勪歡鍜屾硾鍨嬫ā寮忔妧鏈紝鍖呮嫭娉涘寲浠垮嚱鏁幫紙Generalization Functor錛夈佸崟浠訛紙Singleton錛夈佹櫤鑳芥寚閽堛佸璞″伐鍘傦紙Object Factory錛夈佹娊璞″伐鍘傦紙Abstract Factory錛夈佽闂咃紙Visitor錛変互鍙婂鏂規硶錛圡ultimethods錛夌瓑銆傛瘡涓縐嶆妧鏈兘璁╀漢澶у紑鐪肩晫錛屽徆涓鴻姝€?</font> </p> <p> <font face="Verdana">鍦–++鐨勫涔犳柟闈紝榪囩姽涓嶅強寰寰鎴愪簡涓嶆眰鐢氳В鐨勫熷彛銆傜劧鑰岋紝闈㈠悜瀵硅薄騫墮潪C++鐨勫叏閮紝妯℃澘鍜屾硾鍨嬬紪紼嬩害鍗犲崐澹佹睙灞便傚浜庘滀弗鑲冣濈殑C++紼嬪簭鍛樿岃█錛屽強鏃惰窡榪涜繖欏規棭緇忎緥璇佺殑鎴愬姛鎶鏈紝涓嶅け涓烘槑鏅轟箣涓俱?</font> </p> <p> <font face="Verdana">緇撹 </font> </p> <p> <font face="Verdana">榪欎簺钁椾綔鏄姝ゅぇ鍚嶉紟榧庯紝涔熻鏍規湰涓嶇己鎴戜竴涓帹鑽愩傜劧鑰岋紝綰電劧C++紼嬪簭鍛橀槦浼嶇殑鍙戝睍澹ぇ閫熷害涓嶅儚鍏朵粬鏇存椂楂︾殑璇█閭f牱榪呴燂紝鏂頒漢榪涙繪槸澶氫簬鏃т漢鍑恒傞櫎浜嗙儹蹇卞湴嬈㈣繋鏂頒漢錛屾垜涓漢璁や負鍒頒簡瀵笴++涔︾睄榪涜鈥滅洏鐐光濈殑鏃跺欎簡錛屽茍涓斿笇鏈涜繖鏍風殑鈥滅洏鐐光濇湁鐩婁簬鎰熷叴瓚g殑璇昏呫傝淇濇寔鑰愬績鍜屽鍘氥傚湪涓嬬瘒涓紝鎴戝皢緇х畫浠嬬粛鏍囧噯搴撱佺綉緇滅紪紼嬩互鍙婂叾浠栨柟闈㈢殑C++濂戒功銆傛湁濂戒功鐩鎬即錛岃繖涓啲澶╀笉浼氬喎</font> </p> <p> <font face="Verdana"> </font>聽</p> <p> <font face="Verdana"> </font>聽</p> <p>聽</p> <img src ="http://www.shnenglu.com/bloodsuck/aggbug/7934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2006-05-31 13:35 <a href="http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7934.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++ STL綆浠?杞澆)http://www.shnenglu.com/bloodsuck/archive/2006/05/31/7918.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Wed, 31 May 2006 02:01:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2006/05/31/7918.htmlhttp://www.shnenglu.com/bloodsuck/comments/7918.htmlhttp://www.shnenglu.com/bloodsuck/archive/2006/05/31/7918.html#Feedback1http://www.shnenglu.com/bloodsuck/comments/commentRss/7918.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/7918.html
C++ STL綆浠?/td>
鍘熷垱錛?a >鎬掔伀涔嬭 2002騫?0鏈?8鏃?

涓銆丼TL綆浠?/h3>

STL錛圫tandard Template Library錛屾爣鍑嗘ā鏉垮簱)鏄儬鏅疄楠屽寮鍙戠殑涓緋誨垪杞歡鐨勭粺縐般傚畠鏄敱Alexander Stepanov銆丮eng Lee鍜孌avid R Musser鍦ㄦ儬鏅疄楠屽宸ヤ綔鏃舵墍寮鍙戝嚭鏉ョ殑銆傜幇鍦ㄨ櫧璇村畠涓昏鍑虹幇鍦–++涓紝浣嗗湪琚紩鍏++涔嬪墠璇ユ妧鏈氨宸茬粡瀛樺湪浜嗗緢闀跨殑涓孌墊椂闂淬?/p>

STL鐨勪唬鐮佷粠騫夸箟涓婅鍒嗕負涓夌被錛歛lgorithm錛堢畻娉曪級銆乧ontainer錛堝鍣級鍜宨terator錛堣凱浠e櫒錛夛紝鍑犱箮鎵鏈夌殑浠g爜閮介噰鐢ㄤ簡妯℃澘綾誨拰妯$増鍑芥暟鐨勬柟寮忥紝榪欑浉姣斾簬浼犵粺鐨勭敱鍑芥暟鍜岀被緇勬垚鐨勫簱鏉ヨ鎻愪緵浜嗘洿濂界殑浠g爜閲嶇敤鏈轟細銆傚湪C++鏍囧噯涓紝STL琚粍緇囦負涓嬮潰鐨?3涓ご鏂囦歡錛?lt;algorithm>銆?lt;deque>銆?lt;functional>銆?lt;iterator>銆?lt;vector>銆?lt;list>銆?lt;map>銆?lt;memory>銆?lt;numeric>銆?lt;queue>銆?lt;set>銆?lt;stack>鍜?lt;utility>銆備互涓嬬瑪鑰呭氨綆鍗曚粙緇嶄竴涓婼TL鍚勪釜閮ㄥ垎鐨勪富瑕佺壒鐐廣?/p>

浜屻佺畻娉?/h3>

澶у閮借兘鍙栧緱鐨勪竴涓叡璇嗘槸鍑芥暟搴撳鏁版嵁綾誨瀷鐨勯夋嫨瀵瑰叾鍙噸鐢ㄦц搗鐫鑷沖叧閲嶈鐨勪綔鐢ㄣ備婦渚嬫潵璇達紝涓涓眰鏂規牴鐨勫嚱鏁幫紝鍦ㄤ嬌鐢ㄦ誕鐐規暟浣滀負鍏跺弬鏁扮被鍨嬬殑鎯呭喌涓嬬殑鍙噸鐢ㄦц偗瀹氭瘮浣跨敤鏁村瀷浣滀負瀹冪殑鍙傛暟綾繪ц楂樸傝孋++閫氳繃妯℃澘鐨勬満鍒跺厑璁告帹榪熷鏌愪簺綾誨瀷鐨勯夋嫨錛岀洿鍒扮湡姝f兂浣跨敤妯℃澘鎴栬呰瀵規ā鏉胯繘琛岀壒鍖栫殑鏃跺欙紝STL灝卞埄鐢ㄤ簡榪欎竴鐐規彁渚涗簡鐩稿綋澶氱殑鏈夌敤綆楁硶銆傚畠鏄湪涓涓湁鏁堢殑妗嗘灦涓畬鎴愯繖浜涚畻娉曠殑鈥斺斾綘鍙互灝嗘墍鏈夌殑綾誨瀷鍒掑垎涓哄皯鏁扮殑鍑犵被錛岀劧鍚庡氨鍙互鍦ㄦā鐗堢殑鍙傛暟涓嬌鐢ㄤ竴縐嶇被鍨嬫浛鎹㈡帀鍚屼竴縐嶇被涓殑鍏朵粬綾誨瀷銆?/p>

STL鎻愪緵浜嗗ぇ綰?00涓疄鐜扮畻娉曠殑妯$増鍑芥暟錛屾瘮濡傜畻娉昮or_each灝嗕負鎸囧畾搴忓垪涓殑姣忎竴涓厓绱犺皟鐢ㄦ寚瀹氱殑鍑芥暟錛宻table_sort浠ヤ綘鎵鎸囧畾鐨勮鍒欏搴忓垪榪涜紼沖畾鎬ф帓搴忕瓑絳夈傝繖鏍蜂竴鏉ワ紝鍙鎴戜滑鐔熸倝浜哠TL涔嬪悗錛岃澶氫唬鐮佸彲浠ヨ澶уぇ鐨勫寲綆錛屽彧闇瑕侀氳繃璋冪敤涓涓や釜綆楁硶妯℃澘錛屽氨鍙互瀹屾垚鎵闇瑕佺殑鍔熻兘騫跺ぇ澶у湴鎻愬崌鏁堢巼銆?/p>

綆楁硶閮ㄥ垎涓昏鐢卞ご鏂囦歡<algorithm>錛?lt;numeric>鍜?lt;functional>緇勬垚銆?lt;algorithm>鏄墍鏈塖TL澶存枃浠朵腑鏈澶х殑涓涓紙灝界瀹冨緢濂界悊瑙o級錛屽畠鏄敱涓澶у爢妯$増鍑芥暟緇勬垚鐨勶紝鍙互璁や負姣忎釜鍑芥暟鍦ㄥ緢澶х▼搴︿笂閮芥槸鐙珛鐨勶紝鍏朵腑甯哥敤鍒扮殑鍔熻兘鑼冨洿娑夊強鍒版瘮杈冦佷氦鎹€佹煡鎵俱侀亶鍘嗘搷浣溿佸鍒躲佷慨鏀廣佺Щ闄ゃ佸弽杞佹帓搴忋佸悎騫剁瓑絳夈?lt;numeric>浣撶Н寰堝皬錛屽彧鍖呮嫭鍑犱釜鍦ㄥ簭鍒椾笂闈㈣繘琛岀畝鍗曟暟瀛﹁繍綆楃殑妯℃澘鍑芥暟錛屽寘鎷姞娉曞拰涔樻硶鍦ㄥ簭鍒椾笂鐨勪竴浜涙搷浣溿?lt;functional>涓垯瀹氫箟浜嗕竴浜涙ā鏉跨被錛岀敤浠ュ0鏄庡嚱鏁板璞°?/p>

涓夈佸鍣?/h3>

鍦ㄥ疄闄呯殑寮鍙戣繃紼嬩腑錛屾暟鎹粨鏋勬湰韜殑閲嶈鎬т笉浼氶婁簬鎿嶄綔浜庢暟鎹粨鏋勭殑綆楁硶鐨勯噸瑕佹э紝褰撶▼搴忎腑瀛樺湪鐫瀵規椂闂磋姹傚緢楂樼殑閮ㄥ垎鏃訛紝鏁版嵁緇撴瀯鐨勯夋嫨灝辨樉寰楁洿鍔犻噸瑕併?/p>

緇忓吀鐨勬暟鎹粨鏋勬暟閲忔湁闄愶紝浣嗘槸鎴戜滑甯稿父閲嶅鐫涓浜涗負浜嗗疄鐜板悜閲忋侀摼琛ㄧ瓑緇撴瀯鑰岀紪鍐欑殑浠g爜錛岃繖浜涗唬鐮侀兘鍗佸垎鐩鎬技錛屽彧鏄負浜嗛傚簲涓嶅悓鏁版嵁鐨勫彉鍖栬屽湪緇嗚妭涓婃湁鎵鍑哄叆銆係TL瀹瑰櫒灝變負鎴戜滑鎻愪緵浜嗚繖鏍風殑鏂逛究錛屽畠鍏佽鎴戜滑閲嶅鍒╃敤宸叉湁鐨勫疄鐜版瀯閫犺嚜宸辯殑鐗瑰畾綾誨瀷涓嬬殑鏁版嵁緇撴瀯錛岄氳繃璁劇疆涓浜涙ā鐗堢被錛孲TL瀹瑰櫒瀵規渶甯哥敤鐨勬暟鎹粨鏋勬彁渚涗簡鏀寔錛岃繖浜涙ā鏉跨殑鍙傛暟鍏佽鎴戜滑鎸囧畾瀹瑰櫒涓厓绱犵殑鏁版嵁綾誨瀷錛屽彲浠ュ皢鎴戜滑璁稿閲嶅鑰屼箯鍛崇殑宸ヤ綔綆鍖栥?/p>

瀹瑰櫒閮ㄥ垎涓昏鐢卞ご鏂囦歡<vector>,<list>,<deque>,<set>,<map>,<stack>鍜?lt;queue>緇勬垚銆傚浜庡父鐢ㄧ殑涓浜涘鍣ㄥ拰瀹瑰櫒閫傞厤鍣紙鍙互鐪嬩綔鐢卞叾瀹冨鍣ㄥ疄鐜扮殑瀹瑰櫒錛夛紝鍙互閫氳繃涓嬭〃鎬葷粨涓涓嬪畠浠拰鐩稿簲澶存枃浠剁殑瀵瑰簲鍏崇郴銆?/p>
鏁版嵁緇撴瀯 鎻忚堪 瀹炵幇澶存枃浠?/font>
鍚戦噺(vector) 榪炵畫瀛樺偍鐨勫厓绱?/td> <vector>
鍒楄〃(list) 鐢辮妭鐐圭粍鎴愮殑鍙屽悜閾捐〃錛屾瘡涓粨鐐瑰寘鍚潃涓涓厓绱?/td> <list>
鍙岄槦鍒?deque) 榪炵畫瀛樺偍鐨勬寚鍚戜笉鍚屽厓绱犵殑鎸囬拡鎵緇勬垚鐨勬暟緇?/td> <deque>
闆嗗悎(set) 鐢辮妭鐐圭粍鎴愮殑綰㈤粦鏍戯紝姣忎釜鑺傜偣閮藉寘鍚潃涓涓厓绱狅紝鑺傜偣涔嬮棿浠ユ煇縐嶄綔鐢ㄤ簬鍏冪礌瀵圭殑璋撹瘝鎺掑垪錛屾病鏈変袱涓笉鍚岀殑鍏冪礌鑳藉鎷ユ湁鐩稿悓鐨勬搴?/td> <set>
澶氶噸闆嗗悎(multiset) 鍏佽瀛樺湪涓や釜嬈″簭鐩哥瓑鐨勫厓绱犵殑闆嗗悎 <set>
鏍?stack) 鍚庤繘鍏堝嚭鐨勫肩殑鎺掑垪 <stack>
闃熷垪(queue) 鍏堣繘鍏堝嚭鐨勬墽鐨勬帓鍒?/td> <queue>
浼樺厛闃熷垪(priority_queue) 鍏冪礌鐨勬搴忔槸鐢變綔鐢ㄤ簬鎵瀛樺偍鐨勫煎涓婄殑鏌愮璋撹瘝鍐沖畾鐨勭殑涓縐嶉槦鍒?/td> <queue>
鏄犲皠(map) 鐢眥閿紝鍊紏瀵圭粍鎴愮殑闆嗗悎錛屼互鏌愮浣滅敤浜庨敭瀵逛笂鐨勮皳璇嶆帓鍒?/td> <map>
澶氶噸鏄犲皠(multimap) 鍏佽閿鏈夌浉絳夌殑嬈″簭鐨勬槧灝?/td> <map>

鍥涖佽凱浠e櫒

涓嬮潰瑕佽鐨勮凱浠e櫒浠庝綔鐢ㄤ笂鏉ヨ鏄渶鍩烘湰鐨勯儴鍒嗭紝鍙槸鐞嗚В璧鋒潵姣斿墠涓よ呴兘瑕佽垂鍔涗竴浜涳紙鑷沖皯絎旇呮槸榪欐牱錛夈傝蔣浠惰璁℃湁涓涓熀鏈師鍒欙紝鎵鏈夌殑闂閮藉彲浠ラ氳繃寮曡繘涓涓棿鎺ュ眰鏉ョ畝鍖栵紝榪欑綆鍖栧湪STL涓氨鏄敤榪唬鍣ㄦ潵瀹屾垚鐨勩傛鎷潵璇達紝榪唬鍣ㄥ湪STL涓敤鏉ュ皢綆楁硶鍜屽鍣ㄨ仈緋昏搗鏉ワ紝璧風潃涓縐嶉粡鍜屽墏鐨勪綔鐢ㄣ傚嚑涔嶴TL鎻愪緵鐨勬墍鏈夌畻娉曢兘鏄氳繃榪唬鍣ㄥ瓨鍙栧厓绱犲簭鍒楄繘琛屽伐浣滅殑錛屾瘡涓涓鍣ㄩ兘瀹氫箟浜嗗叾鏈韓鎵涓撴湁鐨勮凱浠e櫒錛岀敤浠ュ瓨鍙栧鍣ㄤ腑鐨勫厓绱犮?/p>

榪唬鍣ㄩ儴鍒嗕富瑕佺敱澶存枃浠?lt;utility>,<iterator>鍜?lt;memory>緇勬垚銆?lt;utility>鏄竴涓緢灝忕殑澶存枃浠訛紝瀹冨寘鎷簡璐┛浣跨敤鍦⊿TL涓殑鍑犱釜妯℃澘鐨勫0鏄庯紝<iterator>涓彁渚涗簡榪唬鍣ㄤ嬌鐢ㄧ殑璁稿鏂規硶錛岃屽浜?lt;memory>鐨勬弿榪板垯鍗佸垎鐨勫洶闅撅紝瀹冧互涓嶅悓瀵誨父鐨勬柟寮忎負瀹瑰櫒涓殑鍏冪礌鍒嗛厤瀛樺偍絀洪棿錛屽悓鏃朵篃涓烘煇浜涚畻娉曟墽琛屾湡闂翠駭鐢熺殑涓存椂瀵硅薄鎻愪緵鏈哄埗,<memory>涓殑涓昏閮ㄥ垎鏄ā鏉跨被allocator錛屽畠璐熻矗浜х敓鎵鏈夊鍣ㄤ腑鐨勯粯璁ゅ垎閰嶅櫒銆?/p>

浜斻佸鍒濆鑰呭涔燬TL鐨勪竴鐐瑰緩璁?/h3>

瀵逛簬涔嬪墠涓嶅お浜嗚ВSTL鐨勮鑰呮潵璇達紝涓婇潰鐨勬枃瀛楀彧鏄崄鍒嗘鎷湴鎻忚堪浜嗕竴涓婼TL鐨勬鏋訛紝瀵規偍鐞嗚ВSTL鐨勬満鍒朵箖鑷充嬌鐢⊿TL鎵璧峰埌鐨勫府鍔╁井涔庣敋寰紝榪欎笉鍏夋槸鍥犱負娣卞叆STL闇瑕佸C++鐨勯珮綰у簲鐢ㄦ湁姣旇緝鍏ㄩ潰鐨勪簡瑙o紝鏇村洜涓篠TL鐨勪笁涓儴鍒嗙畻娉曘佸鍣ㄥ拰榪唬鍣ㄤ笁閮ㄥ垎鏄簰鐩哥壍鍒舵垨鑰呰鏄揣瀵嗙粨鍚堢殑銆備粠姒傚康涓婅鏈鍩虹鐨勯儴鍒嗘槸榪唬鍣紝鍙槸鐩存帴瀛︿範榪唬鍣ㄤ細閬囧埌璁稿鎶借薄鏋嚗鍜岀箒鐞愮殑緇嗚妭錛岀劧鑰屼笉鐪熸鐞嗚В榪唬鍣ㄥ張鏄棤娉曠洿鎺ヨ繘鍏ュ彟涓ら儴鍒嗙殑瀛︿範鐨勶紙鑷沖皯瀵瑰墫鏋愭簮鐮佹潵璇存槸榪欐牱錛夈傚彲浠ヨ錛岄傚簲STL澶勭悊闂鐨勬柟娉曟槸闇瑕佽姳璐逛竴瀹氱殑鏃墮棿鐨勶紝浣嗘槸浠ユ涓轟唬浠鳳紝STL鍙栧緱浜嗕竴縐嶅崄鍒嗗彲璐電殑鐙珛鎬э紝瀹冮氳繃榪唬鍣ㄨ兘鍦ㄥ敖鍙兘灝戝湴鐭ラ亾鏌愮鏁版嵁緇撴瀯鐨勬儏鍐典笅瀹屾垚瀵硅繖涓緇撴瀯鐨勮繍綆楋紝鎵浠ヤ笅鍐沖績閽葷爺STL鐨勬湅鍙嬩滑鍗冧竾涓嶈琚竴鏃剁殑鍥伴毦鍑誨掋傚叾瀹濻TL榪愮敤鐨勬ā寮忕浉瀵圭粺涓錛屽彧瑕侀傚簲浜嗗畠錛屼粠涓涓猄TL宸ュ叿鍒板彟涓涓伐鍏鳳紝閮戒笉浼氭湁浠涔堝ぇ鐨勫彉鍖栥?/p>

瀵逛簬STL鐨勪嬌鐢紝涔熸櫘閬嶅瓨鍦ㄧ潃涓ょ瑙傜偣銆傜涓縐嶈涓篠TL鐨勬渶澶т綔鐢ㄥ湪浜庡厖褰撶粡鍏哥殑鏁版嵁緇撴瀯鍜岀畻娉曟暀鏉愶紝鍥犱負瀹冪殑婧愪唬鐮佹秹鍙婁簡璁稿鍏蜂綋瀹炵幇鏂歸潰鐨勯棶棰樸傜浜岀鍒欒涓篠TL鐨勫垵琛蜂箖鏄負浜嗙畝鍖栬璁★紝閬垮厤閲嶅鍔沖姩錛屾彁楂樼紪紼嬫晥鐜囷紝鍥犳搴旇鏄滃簲鐢ㄨ嚦涓娾濈殑錛屽浜庢簮浠g爜鍒欎笉蹇呮繁絀躲傜瑪鑰呭垯璁や負鍒嗘瀽婧愪唬鐮佸拰搴旂敤騫朵笉鐭涚浘錛岄氳繃鍒嗘瀽婧愪唬鐮佷篃鑳芥彁楂樻垜浠鍏跺簲鐢ㄧ殑鐞嗚В錛屽綋鐒舵牴鎹叿浣撶殑鐩殑涔熷彲浠ユ湁涓嶅悓鐨勪晶閲嶃?/p>

鏈鍚庤璇寸殑鏄紝STL鏄疉NSI/ISO C++鏍囧噯鐨勪竴閮ㄥ垎錛屾墍浠ュ浜庝竴涓彲浠ユ湁澶氱C++瀹炵幇鐨勮繃紼嬶紝棣栧厛鑰冭檻鐨勫簲璇ユ槸STL鎻愪緵鐨勬ā鏉匡紙楂樻晥涓斿彲縐繪鎬уソ錛夛紝鍏舵鎵嶆槸鍚勪釜鍘傚晢鍚勮嚜鐩稿簲鐨勫簱錛堥珮鏁堜絾鍙Щ妞嶆т笉濂斤級浠ュ強鑷繁鍘葷紪鍐欎唬鐮侊紙鍙Щ妞嶆уソ浣嗕綆鏁堬級銆?/p>

]]>綾繪ā鏉匡紙鍘熷垱錛?/title><link>http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7730.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Sat, 27 May 2006 09:55:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7730.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/7730.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7730.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/7730.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/7730.html</trackback:ping><description><![CDATA[ <pre>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<font size="2"> 榪欏嚑澶╃湅浜嗕笅妯℃澘 錛屼互涓嬫槸涓漢鐨勪簺蹇冨緱錛岄珮鎵嬭絎戜簡<br />1.綾繪ā鐗?瀹炰緥 瀵硅薄瀹氫箟 寮曡搗 瀹炰緥鍖?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎸囬拡錛屽紩鐢?涓嶄細寮曡搗瀹炰緥鍖?br />綾婚潪鍨嬪弬鏁奧?鍙兘鏄?鏁村艦錛屾灇涓撅紝澶栬仈緇擄紝涓斿簲涓轟竴涓父閲忕紪璇戞椂灝卞簲紜畾<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 嫻偣鍨嬶紝綾葷被鍨嬶紝銆傘傘傞兘涓嶅彲浠?br />2.class templates 鐨勬垚鍛樺嚱鏁?鍦ㄨ皟鐢ㄥ拰鍙栧湴鍧鏃跺疄渚嬪寲錛屽湪綾誨疄渚嬪寲鏃朵笉浼氳嚜鍔ㄥ疄渚嬪寲<br />3.class templates 鐨勫弸鍏冪敵鏄?br />聽聽聽 a.闈炴ā鐗堢被鍨?br />聽聽聽聽聽聽聽聽聽 friend class man;<br />聽聽聽聽聽聽聽聽聽 friend void f(void);<br />聽聽聽聽聽聽聽聽聽聽 friend void man::f(void);<br />聽聽 b.涓瀵逛竴鐨勬ā鐗堝弸鍏?br />聽聽聽聽聽聽聽聽聽聽聽聽 friend class man<T>;<br />聽聽聽聽聽聽聽聽聽聽聽聽 friend void f<T>( man<T>);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽friend void man<T>::f();<br />聽聽聽 c.涓瀵瑰鐨勬ā鐗堝弸鍏?br />聽聽聽聽聽聽聽聽聽 template <typename T><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽 friend class man;<br />聽聽聽聽聽聽聽聽聽聽 template <typename T><br />聽聽聽聽聽聽聽聽聽聽聽聽聽 friend void聽 f( T);<br />聽聽聽聽聽聽聽聽聽聽 template <typename T><br />聽聽聽聽聽聽聽聽聽聽聽聽聽 friend void man<T>::f();<br />4.綾繪ā鐗堢殑闈欐佹垚鍛?<br />聽聽聽聽聽 騫朵笉鍦ㄦā鐗堝畾涔夋椂瀹炰緥鍖栵紝鍦ㄧ被妯$増瀹炰緥鍖栨椂瀹炰緥鍖栵紝瀵瑰簲1涓被鍨?br />template <typename T><br />int man<T>::size=10;<br />鑰屾垚鍛樺嚱鏁板簲涓?br />聽 template <typename T><br />聽聽 void man<T>::f(void)<br />{<br />..........................................<br />}<br />5.鎴愬憳妯$増 鍙互鏄櫘閫氱被鍜?妯$増綾?br />濡傦細<br />class woman聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <br />{<br />public:<br />聽template <typename T><br />聽聽class man<br />聽{<br />聽public:<br />聽聽print(T a)<br />聽聽{<br />聽聽聽cout<<a;<br />聽聽聽 <br />聽聽}</font></pre> <p> <font size="2">聽};<br />聽template <typename T2><br />聽聽void print(T2 a)<br />聽{<br />聽聽cout<<a;<br />聽};<br />protected:<br />private:<br />};<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 1涓ソ鐨勪緥瀛?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 template聽<typename T>聽聽 class A聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {聽聽聽聽聽聽public:<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 template <typename T1>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 A&聽聽聽 operator =(const A<T1> & );<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽濡傛 鍒橝 鐨勫璞?鍙互鐢ㄥ叾浠栧瀷鐨勫璞¤祴鍊間簡<br />聽聽聽聽 鍦ㄤ嬌鐢ㄦ椂鎵嶅疄渚嬪寲<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 浣嗘槸鍏跺畾涔夋瘮杈冮獓浜?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 template <typename T> <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 template<typename T1><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 A<T>&聽 A<T>::operator=(const A<T1>& a)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {聽 ...........................}<br /><br /><br /><br />6.綾繪ā鐗堢殑鐗瑰寲<br />聽聽聽聽聽 鐗瑰寲1涓被妯℃澘錛堟墍鏈夋垚鍛樺繀欏葷壒鍖栧寘鎷潤鎬佺被鏁版嵁鎴愬憳(vc),浣嗗弸鍏冩ā鏉匡紙1錛?錛夊彲浠?br />涓嶇壒鍖栵紝褰撲綔涓涓樉紺哄疄鍙傜殑鍑芥暟妯℃澘澶勭悊鍗沖彲錛?鎴?鐗瑰寲1涓ā鏉?鎴愬憳鍑芥暟<br /><br />聽聽聽聽聽聽聽聽聽妯℃澘鎴愬憳鍑芥暟鐗瑰寲鏄畾涔夊繀欏誨嚭鐜板湪瀹炵幇鏂囦歡錛坈pp)涓?br />聽聽聽聽聽聽 璇硶涓?br />聽聽聽 void man<int>::f(void)<br />{<br />............................<br />}<br />聽聽聽聽聽聽<br />綾葷壒鍖?br />聽template <><br />class man<int><br />{<br />聽聽聽聽聽聽 ......//涓墍鏈夌被鍨嬪弬鏁頒互int 鏇夸唬<br />};<br />聽聽聽聽聽聽<br />聽聽man<int>::man()<br />{<br />......<br />}<br /><br />void man<int>::f(void)<br />{<br />}<br />娉ㄦ剰聽 綾繪垚鍛樹腑<br />聽聽 static const 鏈夊簭綾誨瀷鍙互鍦ㄤ綋鍐呭垵濮嬪寲static const int a=10;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 浠呬粎static聽 蹇呴』鍦ㄤ綋澶?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 static int a;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int聽woman::a=10;<br />聽聽聽闈?鐗瑰寲<br />聽聽 template <typename T><br />聽聽 int man<T>::size=10;<br />聽聽 鐗瑰寲<br />聽聽 int man<char>::size=10;<br />7鍋忕壒鍖?br />聽聽 綾繪ā鏉挎湁1涓互涓婃ā鐗堝弬鏁幫紙綾誨瀷鍙傛暟錛岄潪綾誨瀷鍙傛暟錛?br />聽聽聽聽聽聽聽聽聽聽聽聽聽 鏌愪簺妯$増鍙傛暟 琚疄闄呯殑鍨嬪拰鍊煎彇浠o紙娉ㄦ剰鏄?鍙栦唬 錛屼笉鏄鍔狅紝鍑忓皯錛?br />聽聽聽聽聽 濡傦細<br /><br />//////////////////澶存枃浠?br />聽聽聽聽聽聽 template <typename T1,typename T2,int size><br />class wc<br />{<br />public:<br />聽wc()<br />聽{<br />聽聽cout<<"\n int T1,T2, int";<br />聽}<br />protected:<br />private:<br />};<br />template <typename T,int size><br />class聽 wc<T* ,T,size><br />{<br />public:<br />聽wc()<br />聽{<br />聽聽cout<<"\n in T *, T ,size";<br />聽}<br />protected:<br />private:<br />};<br />template <typename T,int size><br />class聽 wc<T* ,float,size><br />{<br />public:<br />聽wc()<br />聽{<br />聽聽cout<<"\n in T* ,float,size";<br />聽}<br />protected:<br />private:<br />};<br />template <typename T><br />class聽 wc<T* ,float,80><br />{<br />public:<br />聽wc()<br />聽{<br />聽聽cout<<"\n in T* ,float,80";<br />聽}<br />protected:<br />private:<br />};<br />///////澶存枃浠?br />//////main()<br />wc<int,float,10> wc1;<br />聽wc<int* ,int ,20> wc2;<br />聽wc<int*,float,39> wc3;<br />wc<int*,float,80>wc4;<br />///////main() ,鍦╲c 7 涓婇氳繃<br />//////main()<br /><br /><br />8.棰勮妯℃澘鍙傛暟(鍙湁鍦ㄧ被妯℃澘涓墠鎸囧畾 錛? .聽 鏄庣‘鎸囧畾 a<int,int>聽聽 ,鐩存帴瀹氫箟鏃?man<>聽 kkk;2. a<T,T> )<br />template <typename T,typename T1=float><br />class man<br />{<br />..........<br />}<br /><br />鍐欏埌榪欓噷紿佺劧鎯沖埌<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 class A {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽virtual void聽聽 print();<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 };<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 class B:public A {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 virtual void print();<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 };<br />B b;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 A *a =&b;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 a->print();//璋冪敤 B鐨勶紝姝ゆ椂 print()涓殑this 鎸囬拡鏄燘 * const,浣跨敤B 鐨勬帴鍙B?<br /><br />9.鍙岄噸妯℃澘鍙傛暟錛堝緢鏈夌敤錛?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 template <typename T,typename G =man<T> ><br />聽class baby<br />聽{<br />聽public:<br />聽 baby ()<br />聽 {<br />聽聽 cout<<"\n in baby";<br />聽 }<br />聽protected:<br />聽private:<br />聽};//綾誨瀷鍙傛暟鍙互鏄?綾葷被鍨?br />聽聽聽聽聽聽聽聽 <br />baby<int, man<float> > b;聽 //ok<br />////////////////////////<br />template <typename T,template <typename G> class TT>//鍙互鐪佺暐涓?template <typename T聽 ,template<typename>聽聽class聽聽TT><br />聽class聽 son<br />聽{<br />聽public:<br />聽聽 TT<T> * a;聽<br />聽聽聽聽 son()<br />聽聽{<br />聽聽聽聽聽聽聽聽聽聽 a=0;<br />聽聽聽cout<<"\n in son";<br />聽聽}<br />聽protected:<br />聽private:<br />聽};<br />聽聽 son<int, man> b;//鍒欏氨鍚湁浜?man<int > * a;<br />TT 鏄ā鏉垮崰浣嶇鍙鳳紝鏄竴涓甫1涓被鍨嬪弬鏁扮殑綾繪ā鏉匡紝濡傛灉鍏舵湁榛樿妯℃澘鍙傛暟 鍒欏拷鐣ユ帀聽聽<br />鎵浠ヂ燝G鑻ュ甫榛樿 鐨勬ā鏉?搴旇濡備笅<br />聽聽聽聽聽聽聽聽聽聽聽 template <typename T, template <typename T2, typename= man<T2>聽 > class GG><br />class son<br />{<br />}</font> </p> <p> <font size="2">/////////聽聽 綾繪ā鏉跨被鍨嬪弬鏁?鍚屾椂榪樺彲浠ユ槸 綾繪ā鏉?br /><br />10. 瀛楃涓插父閲忓湪妯℃澘涓殑娉ㄦ剰浜嬮」<br /><br />聽聽聽聽聽聽聽聽聽聽 char * a="hi ,friend ";///"hi, friend"聽 鏂囧瓧甯擱噺 鏄?const char [10] 綾誨瀷聽 宸﹀艱漿鎹㈠埌 const char * <br />闄愬畾杞崲鍒?char *,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 template <typename T銆?br />聽聽聽聽聽 ostream& operator <<(ostream & os, const T & b)錛?/娉ㄦ剰鍙湁const聽鎵嶈兘鎺ュ彈涓存椂鍙橀噺<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽 cout<<"hi,friend";聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽 cout<<"bad";<br />/////2涓笉鍚岀殑妯℃澘瀹炰緥<br />聽聽 typeid(鍙橀噺).name();///鐩存帴鎵撳嵃鍑哄彉閲忕被鍨?br />鍐欏埌榪欙紝闂叉壇涓嬶細<br />聽聽聽 鏍堝尯錛屽爢鍖猴紝鍏ㄥ眬錛堥潤鎬侊級鍖猴紝鏂囧瓧甯擱噺錛屼唬鐮佸尯錛?涓ぇ鍖猴紝榪欎釜鏄垜鍚鐨?br />////////////////////////////////////////////////<br />11.妯℃澘鐨勭紪璇戞ā鍨?br />聽聽聽聽 鍦ㄥ疄渚嬪寲鐐瑰繀欏昏兘鎵懼埌瀹氫箟//鍘熷垯<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍙兘浣跨敤鍖呭惈妯″紡浜嗭紝<br />a..h. cpp聽鍦?h鏈鍚庝竴琛屽寘鍚繘 cpp<br />b.聽鍏ㄩ儴鍦╤聽鎴?cpp<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽鍒嗙妯″紡,鐩墠鏀寔鐨別xport 鍏抽敭瀛梚鐨勭紪璇戝櫒寰堝皯錛坴c.net 涓嶆敮鎸侊級</font> <br /> <br />12.<br />鍑芥暟鎸囬拡綾誨瀷涔熻兘鍋氭ā鏉跨被鍨嬪弬鏁?br /><br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff">bool</span> <span style="COLOR: #000000">聽minn(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽a,</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽b)<br /><img id="Codehighlighter1_23_40_Open_Image" onclick="this.style.display='none'; Codehighlighter1_23_40_Open_Text.style.display='none'; Codehighlighter1_23_40_Closed_Image.style.display='inline'; Codehighlighter1_23_40_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_23_40_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_23_40_Closed_Text.style.display='none'; Codehighlighter1_23_40_Open_Image.style.display='inline'; Codehighlighter1_23_40_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span> <span id="Codehighlighter1_23_40_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.shnenglu.com/images/dot.gif" /> </span> <span id="Codehighlighter1_23_40_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽a</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">b;<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽template聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">typename聽T1,typename聽T2</span> <span style="COLOR: #000000">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽</span> <span style="COLOR: #0000ff">const</span> <span style="COLOR: #000000">聽T1</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">聽聽mymin(</span> <span style="COLOR: #0000ff">const</span> <span style="COLOR: #000000">聽T1</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">聽t1,聽</span> <span style="COLOR: #0000ff">const</span> <span style="COLOR: #000000">聽T1</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">聽t2,聽T2聽t3聽)<br /><img id="Codehighlighter1_137_166_Open_Image" onclick="this.style.display='none'; Codehighlighter1_137_166_Open_Text.style.display='none'; Codehighlighter1_137_166_Closed_Image.style.display='inline'; Codehighlighter1_137_166_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_137_166_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_137_166_Closed_Text.style.display='none'; Codehighlighter1_137_166_Open_Image.style.display='inline'; Codehighlighter1_137_166_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />聽</span> <span id="Codehighlighter1_137_166_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.shnenglu.com/images/dot.gif" /> </span> <span id="Codehighlighter1_137_166_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽t3(t1,t2)</span> <span style="COLOR: #000000">?</span> <span style="COLOR: #000000">t1:t2;<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽main()<br /><img id="Codehighlighter1_180_205_Open_Image" onclick="this.style.display='none'; Codehighlighter1_180_205_Open_Text.style.display='none'; Codehighlighter1_180_205_Closed_Image.style.display='inline'; Codehighlighter1_180_205_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_180_205_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_180_205_Closed_Text.style.display='none'; Codehighlighter1_180_205_Open_Image.style.display='inline'; Codehighlighter1_180_205_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span> <span id="Codehighlighter1_180_205_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.shnenglu.com/images/dot.gif" /> </span> <span id="Codehighlighter1_180_205_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />cout</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">mymin(</span> <span style="COLOR: #000000">2</span> <span style="COLOR: #000000">,</span> <span style="COLOR: #000000">3</span> <span style="COLOR: #000000">,minn);<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <p> <br />13.<br />妯℃澘鍙傛暟鍙互鏄釜綾繪ā鏉柯犅?<br />template <typename T> <br />class a<br />{<br />};<br />a< vector <int> >;<br /><br /><br />template <typename T, typename T2,template <typename T,typename T2> class con聽 ><br />void add(con<T,T2>,con<T,T2>)<br />{<br />聽cout<<"ok";<br />}<br /><br />add(a,b)//鐗規畩鍦ㄤ簬 闇瑕佹帹瀵?vc 7 鍙互浠幝?綾繪ā鏉夸腑鎺ㄥ鍑哄弬鏁扮被鍨?/p> <p>template <typename T,template <typename T2,typename T3> class con ><br />class ggoo<br />{<br />public:<br />聽con<T,T> a;<br />con<int,int> b;<br /><br />protected:<br />private:<br />};<br /><br />ggoo<int,double, b> kk;//b<int,double>, con 鐨勬ā鏉垮弬鏁板彲浠ヤ換鎰?br />聽</p> <img src ="http://www.shnenglu.com/bloodsuck/aggbug/7730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2006-05-27 17:55 <a href="http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7730.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍑芥暟妯℃澘(鍘熷垱錛?/title><link>http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7728.html</link><dc:creator>榛勫ぇ浠?/dc:creator><author>榛勫ぇ浠?/author><pubDate>Sat, 27 May 2006 07:31:00 GMT</pubDate><guid>http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7728.html</guid><wfw:comment>http://www.shnenglu.com/bloodsuck/comments/7728.html</wfw:comment><comments>http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/bloodsuck/comments/commentRss/7728.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bloodsuck/services/trackbacks/7728.html</trackback:ping><description><![CDATA[聽聽聽聽聽 template <typename T><br />聽T f(T a1,T a2)<br />{<br />.........................<br />}<br /><br /><br />鏄劇ず瀹炲弬<br />f<int >(1,2);<br />鏄劇ず瀹炰緥鍖?br />template聽 int f<int >(int ,int);錛堢敵鏄庯級<br />鏄劇ず鐗瑰寲<br />聽 template <> int f<int> (int,int)錛堝畾涔夛級<br />{<br /><br />聽聽聽聽聽 ...........<br />}<br />寮哄埗 浠庢ā鐗堜腑鎸戦?br />聽<br />f<>(2,3);<br /><br />鍦ㄥ嚱鏁拌皟鐢紝鍙栧嚱鏁板湴鍧鏃?瀹炲弬鎺ㄦ紨錛堝乏鍊鹼紝闄愬畾錛屽熀綾伙級<br />聽int (* p)(int ,int)=&f;聽聽聽聽 int(*p) (int ,int )=& f<int,int><br />聽 f(2,3);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 f<int,int>(2,3);<br />1.緙栬瘧妯$増鏃訛紝緙栬瘧鍣ㄦ鏌?br />2.瀹炰緥鍖栨椂錛堝湪瀹炰緥鍖栫偣 鍐嶇紪璇戯級錛岀紪璇戝櫒媯鏌?br /><br />鍑芥暟妯$増 鍙兘鍑虹幇鍦ㄦā鐗堝畾涔変腑<br />鍑芥暟妯$増瀹炰緥 鍙互鍑虹幇鍦ㄦā鐗堝畾涔夊拰闈炲畾涔変腑<br />//////////////////////<br />1.闈炴ā鐗堝嚱鏁頒紭鍏堢駭楂?br />2.鍊欓?--銆夊彲琛屽疄渚嬪寲錛堟湁鐗瑰寲鍚︺堬級錛堟湁闈炴ā鐗堝惁錛?-銆夐変腑<br />3.渚濊禆妯$増鍙傛暟鐨勫湪瀹炰緥鐐硅В鏋愶紝涓嶄緷璧栫殑鍦ㄦā鐗堝畾涔夋椂瑙f瀽<img src ="http://www.shnenglu.com/bloodsuck/aggbug/7728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bloodsuck/" target="_blank">榛勫ぇ浠?/a> 2006-05-27 15:31 <a href="http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7728.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>const 鍜?寮曠敤 http://www.shnenglu.com/bloodsuck/archive/2006/05/27/7725.html榛勫ぇ浠?/dc:creator>榛勫ぇ浠?/author>Sat, 27 May 2006 06:21:00 GMThttp://www.shnenglu.com/bloodsuck/archive/2006/05/27/7725.htmlhttp://www.shnenglu.com/bloodsuck/comments/7725.htmlhttp://www.shnenglu.com/bloodsuck/archive/2006/05/27/7725.html#Feedback1http://www.shnenglu.com/bloodsuck/comments/commentRss/7725.htmlhttp://www.shnenglu.com/bloodsuck/services/trackbacks/7725.html聽聽 ////寮曠敤鏄竴縐嶇被鍨?br />聽聽 const int ==int
///const 淇グ 鍦ㄩ潪寮曠敤 鍜?鎸囬拡 鎯呭喌涓嬄?涓嶆敼鍙樼被鍨?br />聽聽 const int &聽 != int &
聽聽 const int *聽聽 !=int *聽聽聽////鍙湁 const 綾誨瀷 鎸囬拡鑳芥帴鍙?const 綾誨瀷 鍦板潃
聽聽闈炲紩鐢ㄧ被鍨?蹇呴』綺劇‘鍖歸厤
聽聽聽float 聽i=2.22f;
聽聽 int & p= i;///error
聽const int & p=i;//ok,闆舵椂瀵硅薄,涔熷氨鏄鍏跺彲浠ユ帴鍙?涓彸鍊兼垨 涓嶅尮閰嶇被鍨?br />聽聽 鐗瑰埆闇瑕佹敞鎰?闈瀋onst寮曠敤蹇呴渶 鏄釜綺劇‘鍖歸厤鐨勫乏鍊?br />濡偮?
聽聽 const int a=100;
聽聽 const int * &聽p=& a//error,& a鏄?const int * ,聽浣嗗叾鍦板潃鏄釜鍙沖?鍙湁 const 鎵嶈兘鎺ュ彈鍙蟲
聽聽 const int * const & p= &a//ok;涓嶆槸瀵光渃onst鈥濈殑寮曠敤涓嶈兘緇戝畾鍒伴潪 lvalue
聽 int a=10;
int *& b=&a///閿欒
int *const & b=&a;//ok
浣?char * a="good";//"good" 鏄痗onst char [5]綾誨瀷---->const char* 浣喡?鏄?a鏄痗har* ;榪欎釜鏄紪璇戝櫒鐨勪緥澶?br />聽
寮曠敤錛氭病鏈夋寚閽堣娉曠殑鎸囬拡錛岄潪const寮曠敤鍙兘鎺ュ彈宸﹀?br />鎸囬拡鐨勫紩鐢ㄧ浉褰撲簬涓涓寚閽堢殑鎸囬拡錛屽父鐢ㄤ簬鍑芥暟鍙傛暟涓潵鏀瑰彉鎸囬拡鏈韓鐨勫鹼紙澶栭儴鍚屾椂涔熸敼鍙橈級
濡?br />聽聽聽聽聽聽 void f(int *&p)
{
p=new int [5];//澶栭儴涔熸敼鍙樹簡
}
聽聽聽聽聽聽聽聽聽聽聽聽聽void f(int **p)
{
*p=new int [5];//澶栭儴涔熸敼鍙?br />}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 void f(int * p)
{
p=new int [5];//澶栭儴涓嶆敼鍙?br />}
闈瀋onst 鎸囬拡閮藉彲浠ョ粰void *;
void *p =(int) 0x3444;

]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美成人一品| 黄色亚洲免费| 亚洲精选一区二区| 亚洲高清毛片| 欧美a级片网站| 日韩一区二区电影网| 亚洲国产电影| 欧美午夜宅男影院在线观看| 亚洲免费视频网站| 欧美一区二区高清| 影音先锋日韩资源| 欧美福利在线| 欧美特黄一级| 久久夜色精品国产| 欧美精品v国产精品v日韩精品| 亚洲精品国产精品国产自| 99精品国产高清一区二区| 国产精品一二三| 美国十次了思思久久精品导航| 免费日韩av电影| 亚洲综合色激情五月| 久久九九热re6这里有精品| 亚洲精品偷拍| 午夜视频在线观看一区二区三区 | 久久嫩草精品久久久久| 亚洲美女视频网| 性亚洲最疯狂xxxx高清| 亚洲美女毛片| 久久爱另类一区二区小说| 日韩一二三在线视频播| 午夜欧美不卡精品aaaaa| 亚洲乱码国产乱码精品精天堂 | 欧美在线资源| 一本久久a久久免费精品不卡| 亚洲香蕉成视频在线观看| 亚洲国产精品久久精品怡红院| 99热在这里有精品免费| 一区二区三区在线视频观看| 亚洲一区二区三区高清不卡| 亚洲激情视频| 久久xxxx精品视频| 午夜亚洲一区| 欧美日韩午夜剧场| 另类激情亚洲| 国产一区二区在线观看免费播放| 日韩网站免费观看| 亚洲精品一区在线观看| 久久国产福利| 欧美一级播放| 国产精品av久久久久久麻豆网| 欧美激情视频一区二区三区免费 | 久久久精品动漫| 亚洲第一精品福利| 亚洲欧美变态国产另类| 一本久久a久久精品亚洲| 久久综合久久综合这里只有精品| 久久9热精品视频| 国产精品青草久久久久福利99| 亚洲激情视频网站| 亚洲欧洲午夜| 蜜桃av一区二区三区| 欧美大片一区二区| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩视频在线观看一区二区| 久久视频国产精品免费视频在线| 欧美一区二区在线| 国产日韩欧美三级| 午夜亚洲视频| 久久亚洲精品一区二区| 国内一区二区三区在线视频| 欧美在线观看天堂一区二区三区 | 精品成人久久| 久久综合久久美利坚合众国| 欧美成人69av| 亚洲日本va午夜在线电影| 欧美jizz19性欧美| 亚洲精品男同| 亚洲天堂av图片| 国产精品欧美日韩| 欧美专区日韩视频| 欧美二区视频| 一本大道久久a久久精品综合 | 欧美一区久久| 欧美sm重口味系列视频在线观看| 亚洲国产欧美日韩精品| 欧美日韩成人在线播放| 宅男在线国产精品| 欧美在线首页| 在线观看一区二区视频| 欧美日韩国产综合网| 亚洲一二三区在线观看| 久久久综合激的五月天| 日韩亚洲欧美精品| 国产精品爽黄69| 久久夜色精品国产欧美乱| 亚洲激情国产精品| 久久国产精品网站| 亚洲国产免费看| 国产精品免费观看在线| 久久久91精品国产| 一区二区三区国产精品| 久久久亚洲午夜电影| 日韩亚洲综合在线| 激情欧美日韩| 国产精品国产三级国产aⅴ无密码| 欧美亚洲色图校园春色| 亚洲激情在线观看视频免费| 欧美一区二区三区视频在线观看| 亚洲国产精品久久| 国产精品视频1区| 欧美freesex交免费视频| 午夜精品久久久久久久99热浪潮| 亚洲盗摄视频| 久久精品视频免费播放| 久久久国产精品一区| 欧美一级黄色录像| 亚洲裸体视频| 一区在线播放| 国产精品自拍网站| 欧美日韩亚洲一区二区| 久久婷婷色综合| 亚洲专区一区| 一区二区三区四区五区精品视频| 女生裸体视频一区二区三区| 欧美一区二区免费视频| 一本久久a久久精品亚洲| 亚洲电影av| 原创国产精品91| 国产婷婷成人久久av免费高清| 欧美特黄一级| 欧美日韩一区在线播放| 欧美国产日韩视频| 开心色5月久久精品| 欧美一区二区三区免费视频| 亚洲系列中文字幕| 一区二区欧美日韩| 日韩午夜中文字幕| 亚洲精品视频免费观看| 亚洲激情视频在线| 亚洲高清在线视频| 欧美福利视频网站| 亚洲高清av在线| 亚洲国产成人av在线| 欧美激情91| 91久久精品国产91性色tv| 亚洲电影av| 91久久精品一区| 亚洲精品一区二区三| 亚洲美女少妇无套啪啪呻吟| 日韩视频不卡| 中文av一区特黄| 亚洲欧美乱综合| 欧美亚洲自偷自偷| 久久久久久久性| 美国十次成人| 欧美日韩不卡一区| 国产精品自拍一区| 激情视频一区二区三区| 亚洲电影第三页| 99热免费精品| 欧美一进一出视频| 久久在精品线影院精品国产| 欧美激情国产日韩| 99精品热视频| 亚洲欧美在线免费| 久久噜噜噜精品国产亚洲综合| 欧美aa在线视频| 国产精品国产三级国产专区53| 国产日韩欧美精品一区| 亚洲高清不卡在线| 亚洲无线一线二线三线区别av| 欧美一区精品| 欧美黄色aaaa| 亚洲一区二区精品视频| 久久人人看视频| 欧美日韩国产麻豆| 国产一区二区三区奇米久涩| 亚洲国产网站| 欧美在线免费播放| 欧美激情视频一区二区三区在线播放 | 国产精品夜夜夜| 亚洲电影免费在线| 亚洲欧美激情诱惑| 欧美刺激性大交免费视频 | 久久久免费精品| 99av国产精品欲麻豆| 欧美中文字幕在线| 欧美视频二区36p| 伊人久久婷婷| 亚洲欧美一级二级三级| 亚洲国产成人在线视频| 欧美一区二区三区四区夜夜大片 | 欧美日韩成人激情| 国精产品99永久一区一区| 99精品国产在热久久婷婷| 久久精品国产久精国产爱| 日韩亚洲一区二区| 久久日韩粉嫩一区二区三区| 国产午夜精品理论片a级探花 | 99re8这里有精品热视频免费|