涓嬮潰鐨勭▼渚嬫潵鑷夾n Overview of the C++ Programming Language銆嬶紙5錛? 寮傚父鍜岄敊璇鐞嗭級(jí)
紼嬪簭鐢ㄩ旓細(xì)浣跨敤C++鐨勫紓甯告満鍒訛紝鎶ュ憡stack鐨勪笂婧㈡垨鑰呬笅婧€傦紙鎴戦傚綋鐨勬妸浠g爜琛ュ叏銆傦級(jí)
version 1 婕旂ず浜?jiǎn)鍩烘湰鐨勫紓甯哥敤娉曘?br />浠巘ry閲屾姏鍑轟竴涓紓甯革紙瀹炰緥鎴栧璞★級(jí)錛岀敱catch閲岀殑綾繪帴鍙椼?br />
聽(tīng)1聽(tīng)version聽(tīng)1
聽(tīng)2聽(tīng)//聽(tīng)From:聽(tīng)An聽(tīng)Overview聽(tīng)of聽(tīng)the聽(tīng)C++聽(tīng)Programming聽(tīng)Language
聽(tīng)3聽(tīng)聽(tīng)
聽(tīng)4聽(tīng)#include聽(tīng)<cstdlib>
聽(tīng)5聽(tīng)#include聽(tīng)<iostream>
聽(tīng)6聽(tīng)#include聽(tīng)<string>
聽(tīng)7聽(tīng)using聽(tīng)namespace聽(tīng)std;
聽(tīng)8聽(tīng)
聽(tīng)9聽(tīng)template<class聽(tīng)T>class聽(tīng)Stack{
10聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)T*聽(tīng)v;
11聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)int聽(tīng)max_size;
12聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)int聽(tīng)top;
13聽(tīng)public:
14聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Underflow{聽(tīng)};聽(tīng)聽(tīng)聽(tīng)//聽(tīng)涓嬫孩
15聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Overflow{聽(tīng)};聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)涓婃孩
16聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)construct聽(tīng)function.聽(tīng)determine聽(tīng)the聽(tīng)size聽(tīng)聽(tīng)聽(tīng)
17聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Stack(int聽(tīng)s):聽(tīng)max_size(s),聽(tīng)top(0){聽(tīng)v聽(tīng)=聽(tīng)new聽(tīng)T[max_size];}聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
18聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)~Stack(){}
19聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)void聽(tīng)push(T聽(tīng)c){
20聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if(top聽(tīng)==聽(tīng)max_size)聽(tīng)throw聽(tīng)Overflow();
21聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)v[top++]聽(tīng)=聽(tīng)c;
22聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
23聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)T聽(tīng)pop(){
24聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if(top聽(tīng)==聽(tīng)0)聽(tīng)throw聽(tīng)Underflow();
25聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)return聽(tīng)v[--top];
26聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
27聽(tīng)};聽(tīng)
28聽(tīng)
29聽(tīng)void聽(tīng)f()
30聽(tīng){
31聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Stack<string>聽(tīng)ss(10);
32聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)try{
33聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)ss.push("Quiz");
34聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)string聽(tīng)s聽(tīng)=聽(tīng)ss.pop();
35聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)ss.pop();
36聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
37聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Overflow){
38聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"error:聽(tīng)stack聽(tīng)overflow"聽(tīng)<<聽(tīng)endl;
39聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
40聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Underflow){
41聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"error:聽(tīng)stack聽(tīng)underflow"聽(tīng)<<聽(tīng)endl;
42聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
43聽(tīng)}
44聽(tīng)
45聽(tīng)int聽(tīng)main(int聽(tīng)argc,聽(tīng)char聽(tīng)*argv[])
46聽(tīng){
47聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)f();
48聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)system("PAUSE");
49聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)return聽(tīng)EXIT_SUCCESS;
50聽(tīng)}
51聽(tīng)
52聽(tīng)杈撳嚭緇撴灉錛歟rror:聽(tīng)stack聽(tīng)underflow
53聽(tīng)
54聽(tīng)
鏀硅繘錛屾垜浠殑絎簩涓増鏈涓嬶細(xì)
濡傛灉灝?/p>
聽(tīng)1聽(tīng)聽(tīng)class聽(tīng)Underflow{聽(tīng)};聽(tīng)聽(tīng)聽(tīng)//聽(tīng)涓嬫孩
聽(tīng)2聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Overflow{聽(tīng)};聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)涓婃孩
聽(tīng)3聽(tīng)鍜?br />聽(tīng)4聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Overflow){
聽(tīng)5聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"error:聽(tīng)stack聽(tīng)overflow"聽(tīng)<<聽(tīng)endl;
聽(tīng)6聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)7聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Underflow){
聽(tīng)8聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"error:聽(tīng)stack聽(tīng)underflow"聽(tīng)<<聽(tīng)endl;
聽(tīng)9聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
10聽(tīng)
鍒嗗埆鏀規(guī)垚濡備笅錛?/p>
聽(tīng)1聽(tīng)
聽(tīng)2聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Underflow{聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//
聽(tīng)3聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)public:
聽(tīng)4聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)void聽(tīng)error(void){
聽(tīng)5聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"stack聽(tīng)Underflow"聽(tīng)<<聽(tīng)endl;
聽(tīng)6聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)7聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)};聽(tīng)聽(tīng)聽(tīng)
聽(tīng)8聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Overflow{聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)
聽(tīng)9聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)public:
10聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)void聽(tīng)error(void){
11聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"stack聽(tīng)Overflow"聽(tīng)<<聽(tīng)endl;
12聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}聽(tīng)
13聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)};聽(tīng)聽(tīng)聽(tīng)
14聽(tīng)鍜?br />15聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Overflow&聽(tīng)e){
16聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)e.error();
17聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
18聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Underflow&聽(tīng)e){
19聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)e.error();
20聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
21聽(tīng)
鏀瑰悗鐨勭▼搴忓拰鍘熷厛鐨勫尯鍒湪鍝噷錛岀湅鍑烘潵浜?jiǎn)鍚楀Q?鍛靛懙鍛點(diǎn)?br />
褰撶劧錛屾垜浠繕鑳藉皢浠g爜鏀硅繘銆傝繖鏍蜂駭鐢熶簡(jiǎn)絎笁涓増鏈?br />
絎笁涓増鏈細(xì)version3
鍦⊿tack閲岄潰娣誨姞涓涓被class Stack_error,璁︰nderflow鍜孫verflow閮界戶鎵垮畠錛?/p>
聽(tīng)1聽(tīng)
template<class聽(tīng)T>class聽(tīng)Stack{
聽(tīng)2聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)3聽(tīng)
public:
聽(tīng)4聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)stack_error{
聽(tīng)5聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)public:
聽(tīng)6聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)virtual聽(tīng)void聽(tīng)error(void){銆銆//褰撶劧錛屽彲浠ユ妸瀹冨仛鎴愮函铏氱殑銆傛娊璞$被銆?/span>
聽(tīng)7聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"stack_error"聽(tīng)<<聽(tīng)endl;
聽(tīng)8聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)9聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)};
10聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Underflow:聽(tīng)public聽(tīng)stack_error{聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//
11聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)public:
12聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)void聽(tīng)error(void){
13聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"stack聽(tīng)Underflow"聽(tīng)<<聽(tīng)endl;
14聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}聽(tīng)聽(tīng)聽(tīng)聽(tīng)
15聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)};聽(tīng)聽(tīng)聽(tīng)
16聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Overflow:聽(tīng)public聽(tīng)stack_error{聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)
17聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)public:
18聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)void聽(tīng)error(void){
19聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"stack聽(tīng)Overflow"聽(tīng)<<聽(tīng)endl;
20聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}聽(tīng)
21聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)};聽(tīng)聽(tīng)聽(tīng)
22聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)
23聽(tīng)}
24聽(tīng) 鎺ョ潃鎶婁袱涓猚atch鍚堝茍鎴愪竴涓猚atch錛屽涓嬨?br />聽(tīng)聽(tīng)try{
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)the聽(tīng)same
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::stack_error&聽(tīng)e){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)e.error();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
榪欎笁涓増鏈殑鍔熻兘鏄竴鏍風(fēng)殑錛屼絾鐗堟湰瓚婇珮錛屼唬鐮佽秺娓呮櫚錛屼唬鐮佷篃瓚婂鏄撶淮鎶ゃ?br />
濡傛灉鎴戜滑璁捐浜?jiǎn)涓涓簱錛堟瘮濡備笂闈㈢殑Stack錛夛紝鍦ㄥ紑濮嬬殑鏃跺欐兂鍒扮殑灝辨槸涓や釜寮傚父錛宱verflow鍜寀nderflow銆傚鏋滄湁version1鍜寁ersion3 榪欎袱縐嶆柟娉曡璁tack錛岄偅涔堝嚱鏁癴()錛堢敤鎴風(fēng)殑浠g爜錛変篃鍚屾牱version1鍜寁ersion錛撱傚綋涓孌墊棩瀛愯繃鍘諱簡(jiǎn)錛屾垜浠噯澶囧啀鍔犲叆涓涓紓甯革紝姣斿midflow()錛堝懙鍛靛懙錛屾垜涔熸兂涓嶅嚭鏈変粈涔堢被浼肩殑寮傚父浜?jiǎn)锛?jí)銆傝繖鏍風(fēng)殑璇濓紝搴撹璁¤呭鐢ㄦ埛璇達(dá)細(xì)鈥滄垜浠彂鐜頒簡(jiǎn)midflow()寮傚父錛屽茍鍔犲叆搴撲唬鐮佷腑錛岃鎮(zhèn)ㄦ敼鍐欐?zhèn)ㄧ殑浠g爜f()銆傗?br />榪欐牱鎴戜滑鐨剉ersion1寰椾慨鏀規(guī)垚濡備笅褰㈠紡錛?br />void聽(tīng)f()
{
聽(tīng)聽(tīng)聽(tīng)聽(tīng)Stack<string>聽(tīng)ss(10);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)try{
銆聽(tīng)聽(tīng)聽(tīng)聽(tīng)//
.
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Overflow){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"error:聽(tīng)stack聽(tīng)overflow"聽(tīng)<<聽(tīng)endl;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Underflow){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"error:聽(tīng)stack聽(tīng)underflow"聽(tīng)<<聽(tīng)endl;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::Midflow){聽(tīng)聽(tīng)聽(tīng)聽(tīng)//鎴戜滑鐨勬壘鍒版墍鏈夋墤鎹塻tack寮傚父鐨勪唬鐮侊紝騫跺姞鍏ヨ繖涓ゅ彞銆?/span>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"error:聽(tīng)stack聽(tīng)midflow"聽(tīng)<<聽(tīng)endl;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
}
鑰寁ersion3鐢變簬midflow()緇ф壙浜?jiǎn)stack_error銆傝屽叾鎺ュ彛榪樻槸涓鏍鳳紝瀹㈡埛浠g爜灝辨棤闇鏇存敼浜?jiǎn)銆?br />
聽(tīng)瀹屾瘯銆傞灎韜?璇峰澶氫氦嫻侊紒
闄勶細(xì)version3瀹屾暣浠g爜錛?
聽(tīng)1聽(tīng)Version聽(tīng)3:
聽(tīng)2聽(tīng)#include聽(tīng)<cstdlib>
聽(tīng)3聽(tīng)#include聽(tīng)<iostream>
聽(tīng)4聽(tīng)
聽(tīng)5聽(tīng)using聽(tīng)namespace聽(tīng)std;
聽(tīng)6聽(tīng)
聽(tīng)7聽(tīng)template<class聽(tīng)T>class聽(tīng)Stack{
聽(tīng)8聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)T*聽(tīng)v;
聽(tīng)9聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)int聽(tīng)max_size;
10聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)int聽(tīng)top;
11聽(tīng)public:
12聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)stack_error{
13聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)public:
14聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)virtual聽(tīng)void聽(tīng)error(void)聽(tīng)=聽(tīng)0;
15聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)};
16聽(tīng)
17聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Underflow:聽(tīng)public聽(tīng)stack_error{聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//
18聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)public:
19聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)void聽(tīng)error(void){
20聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"stack聽(tīng)Underflow"聽(tīng)<<聽(tīng)endl;
21聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}聽(tīng)聽(tīng)聽(tīng)聽(tīng)
22聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)};聽(tīng)聽(tīng)聽(tīng)
23聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)class聽(tīng)Overflow:聽(tīng)public聽(tīng)stack_error{聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)
24聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)public:
25聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)void聽(tīng)error(void){
26聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)cerr聽(tīng)<<聽(tīng)"stack聽(tīng)Overflow"聽(tīng)<<聽(tīng)endl;
27聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}聽(tīng)
28聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)};聽(tīng)聽(tīng)聽(tīng)
29聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Stack(int聽(tīng)s):聽(tīng)max_size(s),聽(tīng)top(0){聽(tīng)v聽(tīng)=聽(tīng)new聽(tīng)T[max_size];}聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)construct聽(tīng)function.聽(tīng)determine聽(tīng)the聽(tīng)size聽(tīng)聽(tīng)聽(tīng)
30聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)~Stack(){}
31聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)void聽(tīng)push(T聽(tīng)c){
32聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if(top聽(tīng)==聽(tīng)max_size)聽(tīng)throw聽(tīng)Overflow();
33聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)v[top++]聽(tīng)=聽(tīng)c;
34聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
35聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)T聽(tīng)pop(){
36聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if(top聽(tīng)==聽(tīng)0)聽(tīng)throw聽(tīng)Underflow();
37聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)return聽(tīng)v[--top];
38聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
39聽(tīng)};聽(tīng)
40聽(tīng)
41聽(tīng)void聽(tīng)f()
42聽(tīng){
43聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Stack<string>聽(tīng)ss(0);
44聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)try{
45聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)ss.push("Quiz");
46聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)string聽(tīng)s聽(tīng)=聽(tīng)ss.pop();
47聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)ss.pop();
48聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
49聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch(Stack<string>::stack_error&聽(tīng)e){
50聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)e.error();
51聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
52聽(tīng)
53聽(tīng)}
54聽(tīng)
55聽(tīng)int聽(tīng)main(int聽(tīng)argc,聽(tīng)char聽(tīng)*argv[])
56聽(tīng){
57聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)f();
58聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)system("PAUSE");
59聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)return聽(tīng)EXIT_SUCCESS;
60聽(tīng)}
61聽(tīng)

]]>