C++基本常識實例解析(一)。本站提示廣大學習愛好者:(C++基本常識實例解析(一))文章只能為提供參考,不一定能成為您想要的結果。以下是C++基本常識實例解析(一)正文
明天小編和年夜家一路經由過程幾個實例進修C++基本常識,上面停止實例解析:
【1-1】編寫一個法式,完成一個整數、長整數、浮點數和雙精度數除以2的盤算。
【剖析】這是一個典范的函數重載的法式。聲明函數div()為除法函數,每一個函數的功效根本都是分歧的,分歧的只是情勢參數的類型分歧罷了。法式代碼以下:
#include <iostream> using namespace std; int division(int x){ return x/2; } long division(long x){ return x/2; } float division(float x){ return x/2; } double division(double x){ return x/2; } int main() { int a; long b; float c; double d; cout<<"input a,b,c,d:"<<endl; cin>>a>>b>>c>>d; if(a!=0) cout<<a<<"/2="<<division(a)<<endl; else cout<<"input error!"<<endl; if(b!=0) cout<<b<<"/2="<<division(b)<<endl; else cout<<"input error!"<<endl; if(c!=0) cout<<c<<"/2="<<division(c)<<endl; else cout<<"input error!"<<endl; if(d!=0) cout<<d<<"/2="<<division(d)<<endl; else cout<<"input error!"<<endl; return 0; }
【總結】這是一個最原始的法式,而且很機械化。有心的讀者會發明下面的法式有很多反復的處所,這個恰是我們前面模板外面會講到的內容。
【1-2】編寫一個函數,從三個整數中找出最年夜值和最小值,並前往。
【剖析】這個法式請求一次挪用從主調函數中獲得兩個值,這不是值傳遞可以或許處理的成績,必定會斟酌應用地址傳遞。完成地址傳遞有兩種辦法,一種是指針完成,另外一種就是采取援用。變量的援用既便利又直不雅,異常利於懂得。法式代碼以下:
#include <iostream> using namespace std; void swap(int &a,int &b) { int t; t=a; a=b; b=t;} void max(int a,int b,int c,int &maxnum,int &minnum) { if(a<=b) swap(a,b); if(a<=c) swap(a,c); if(b<=c) swap(b,c); maxnum=a; minnum=c; } int main() { int a,b,c,maxnum,minnum; cout<<"input a,b,c:"; cin>>a>>b>>c; max(a,b,c,maxnum,minnum); cout<<"maxnum="<<maxnum<<endl; cout<<"minnum="<<minnum<<endl; return 0; }
【總結】這個法式又兩個被調函數,都用到援用。應用援用來一次前往兩個參數值,便利簡練。
【1-3】編寫一個函數,求立方體體積,默許邊長為10。
【剖析】這個法式須要用到帶有默許形參值的函數。則在聲明函數時,為形參付與默許值。當函數挪用時,假如輸出實參值,則默許函數值不起感化。而在沒有實參值輸出的情形下,就應用默許形參值停止盤算。法式代碼以下:
#include <iostream> using namespace std; float volumn(float a=10,float b=10,float c=10); int main() { float a,b,c; cout<<"沒有現實參數值時,volumn="<<volumn()<<endl; cout<<"input a,b,c:"; cin>>a>>b>>c; cout<<"有現實參數值時,volumn="<<volumn(a,b,c)<<endl; return 0; } float volumn(float a,float b,float c) { return a*b*c; }
【總結】用帶有默許參數值的函數須要留意的時,默許參數值只能在函數聲明時標注,而在函數界說時則不克不及標注。固然,函數聲明和函數界說標注在一路時不受這個限制。
【1-4】編寫一個法式,盤算分離選修2、3和4門課程的先生的均勻分。
【剖析】這也是一個典范的函數重載的成績。這幾個函數的差別在於參數個數分歧。法式代碼以下:
#include <iostream> using namespace std; float avg(float,float); float avg(float,float,float); float avg(float,float,float,float); int main() { cout<<"The first student:"<<avg(80.0f,70.2f)<<endl; cout<<"The second student:"<<avg(80.1f,78.1f,12.3f)<<endl; cout<<"The third student:"<<avg(45.6f,90.1f,78.6f)<<endl; return 0; } float avg(float x,float y) { return (x+y)/2.0; } float avg(float a,float b,float c) { return (a+b+c)/3; } float avg(float a,float b,float c,float d){ return (a+b+c+d)/4; }
【剖析】這幾個avg函數重載的動身點是因為其形參個數分歧。而且因為函數體只要一句話,而且沒有選擇和輪回等龐雜構造,故也能夠將其界說為內聯函數,以進步法式運轉後果。
以上就是明天小編跟年夜家分享的C++經典實例,須要年夜家親身著手操作能力體會C++說話帶給我們的樂趣。