C++基礎(chǔ)知識(shí)實(shí)例解析(一)
今天小編和大家一起通過幾個(gè)實(shí)例學(xué)習(xí)C++基礎(chǔ)知識(shí),下面進(jìn)行實(shí)例解析:
【1-1】編寫一個(gè)程序,實(shí)現(xiàn)一個(gè)整數(shù)、長(zhǎng)整數(shù)、浮點(diǎn)數(shù)和雙精度數(shù)除以2的計(jì)算。
【分析】這是一個(gè)典型的函數(shù)重載的程序。聲明函數(shù)div()為除法函數(shù),每個(gè)函數(shù)的功能基本都是一致的,不同的只是形式參數(shù)的類型不同而已。程序代碼如下:
#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;
}
【總結(jié)】這是一個(gè)最原始的程序,并且很機(jī)械化。有心的讀者會(huì)發(fā)現(xiàn)上面的程序有許多重復(fù)的地方,這個(gè)正是我們后面模板里面會(huì)講到的內(nèi)容。
【1-2】編寫一個(gè)函數(shù),從三個(gè)整數(shù)中找出最大值和最小值,并返回。
【分析】這個(gè)程序要求一次調(diào)用從主調(diào)函數(shù)中獲取兩個(gè)值,這不是值傳遞能夠解決的問題,必然會(huì)考慮使用地址傳遞。實(shí)現(xiàn)地址傳遞有兩種方法,一種是指針實(shí)現(xiàn),另一種就是采用引用。變量的引用既方便又直觀,非常利于理解。程序代碼如下:
#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;
}
【總結(jié)】這個(gè)程序又兩個(gè)被調(diào)函數(shù),都用到引用。使用引用來一次返回兩個(gè)參數(shù)值,方便簡(jiǎn)潔。
【1-3】編寫一個(gè)函數(shù),求立方體體積,默認(rèn)邊長(zhǎng)為10。
【分析】這個(gè)程序需要用到帶有默認(rèn)形參值的函數(shù)。則在聲明函數(shù)時(shí),為形參賦予默認(rèn)值。當(dāng)函數(shù)調(diào)用時(shí),如果輸入實(shí)參值,則默認(rèn)函數(shù)值不起作用。而在沒有實(shí)參值輸入的情況下,就使用默認(rèn)形參值進(jìn)行計(jì)算。程序代碼如下:
#include <iostream>
using namespace std;
float volumn(float a=10,float b=10,float c=10);
int main()
{
   float a,b,c;
 cout<<"沒有實(shí)際參數(shù)值時(shí),volumn="<<volumn()<<endl;
 cout<<"input a,b,c:"; cin>>a>>b>>c;
   cout<<"有實(shí)際參數(shù)值時(shí),volumn="<<volumn(a,b,c)<<endl;
 return 0;
}
float volumn(float a,float b,float c)
{ return a*b*c;  }
【總結(jié)】用帶有默認(rèn)參數(shù)值的函數(shù)需要注意的時(shí),默認(rèn)參數(shù)值只能在函數(shù)聲明時(shí)標(biāo)注,而在函數(shù)定義時(shí)則不能標(biāo)注。當(dāng)然,函數(shù)聲明和函數(shù)定義標(biāo)注在一起時(shí)不受這個(gè)限制。
【1-4】編寫一個(gè)程序,計(jì)算分別選修2、3和4門課程的學(xué)生的平均分。
【分析】這也是一個(gè)典型的函數(shù)重載的問題。這幾個(gè)函數(shù)的區(qū)別在于參數(shù)個(gè)數(shù)不同。程序代碼如下:
#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; }
【分析】這幾個(gè)avg函數(shù)重載的出發(fā)點(diǎn)是由于其形參個(gè)數(shù)不同。并且由于函數(shù)體只有一句話,并且沒有選擇和循環(huán)等復(fù)雜結(jié)構(gòu),故也可以將其定義為內(nèi)聯(lián)函數(shù),以提高程序運(yùn)行效果。
以上就是今天小編跟大家分享的C++經(jīng)典實(shí)例,需要大家親自動(dòng)手操作才能領(lǐng)會(huì)C++語(yǔ)言帶給我們的樂趣。
上一篇:貪心算法的C語(yǔ)言實(shí)現(xiàn)與運(yùn)用詳解
欄 目:C語(yǔ)言
下一篇:深入學(xué)習(xí)C語(yǔ)言中的函數(shù)指針和左右法則
本文標(biāo)題:C++基礎(chǔ)知識(shí)實(shí)例解析(一)
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2891.html
您可能感興趣的文章
- 04-02c語(yǔ)言沒有round函數(shù) round c語(yǔ)言
 - 01-10深入理解C++中常見的關(guān)鍵字含義
 - 01-10使用C++實(shí)現(xiàn)全排列算法的方法詳解
 - 01-10c++中inline的用法分析
 - 01-10用C++實(shí)現(xiàn)DBSCAN聚類算法
 - 01-10全排列算法的非遞歸實(shí)現(xiàn)與遞歸實(shí)現(xiàn)的方法(C++)
 - 01-10C++大數(shù)模板(推薦)
 - 01-10淺談C/C++中的static與extern關(guān)鍵字的使用詳解
 - 01-10深入C/C++浮點(diǎn)數(shù)在內(nèi)存中的存儲(chǔ)方式詳解
 - 01-10貪心算法 WOODEN STICKS 實(shí)例代碼
 


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
 - 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
 - 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
 - 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
 - 5c語(yǔ)言計(jì)算三角形面積代碼
 - 6什么是 WSH(腳本宿主)的詳細(xì)解釋
 - 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
 - 8正則表達(dá)式匹配各種特殊字符
 - 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
 - 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
 
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
 - 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
 - 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
 - 04-02c語(yǔ)言用函數(shù)寫分段 用c語(yǔ)言表示分段
 - 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
 - 04-02c語(yǔ)言編寫函數(shù)冒泡排序 c語(yǔ)言冒泡排
 - 04-02c語(yǔ)言沒有round函數(shù) round c語(yǔ)言
 - 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
 - 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
 - 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
 
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 - 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
 - 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 04-02jquery與jsp,用jquery
 - 01-10delphi制作wav文件的方法
 - 01-10C#中split用法實(shí)例總結(jié)
 - 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
 - 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
 - 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
 


