国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++初階 入門(2)

這篇具有很好參考價(jià)值的文章主要介紹了C++初階 入門(2)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、缺省函數(shù)

1.1什么是缺省函數(shù)

1.2為什么要有缺省函數(shù)

1.3使用缺省函數(shù)

1.4測(cè)試代碼

二、函數(shù)重載

2.1什么是函數(shù)重載?

2.2為什么要有函數(shù)重載

2.3什么情況構(gòu)成函數(shù)重載

2.4函數(shù)重載例子及代碼

?三、引用

3.1什么是引用

3.2如何引用

?3.3常引用(可略過)

3.4引用和指針的對(duì)比


?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-713990.html

前言:C++初階系列,每一期博主都會(huì)使用簡(jiǎn)單樸素的語(yǔ)言將對(duì)應(yīng)的知識(shí)分享給大家,爭(zhēng)取讓所有人都可以聽懂,C++初階系列會(huì)持續(xù)更新,上學(xué)期間將不定時(shí)更新,但總會(huì)更的

一、缺省函數(shù)

1.1什么是缺省函數(shù)

c++中,定義函數(shù)的時(shí)候可以讓最右邊的連續(xù)若干個(gè)參數(shù)有缺省值,在調(diào)用函數(shù)的時(shí)候,如果不寫相應(yīng)位置的參數(shù),則調(diào)用的參數(shù)就為缺省值,如此便構(gòu)成了缺省函數(shù)

1.2為什么要有缺省函數(shù)

有的小伙伴可能會(huì)覺得,缺省函數(shù)好像并沒有什么使用的場(chǎng)所。但其實(shí)在實(shí)際編寫代碼的過程中,我們有些時(shí)候會(huì)頻繁地調(diào)用某個(gè)函數(shù),而這個(gè)函數(shù)的其他參數(shù)是固定值,在c中遇到這種情況,便只能老實(shí)寫參數(shù),即使這幾個(gè)參數(shù)的數(shù)值你已經(jīng)寫了無(wú)數(shù)次了,但你依然得去寫它,而在c++中,你使用缺省函數(shù)就可以避免這一情況,你完全可以將一些不會(huì)變的參數(shù)或不常變的參數(shù)進(jìn)行缺省,這樣子不僅可以節(jié)約大量的時(shí)間,還可以大大提升代碼的可讀性。

1.3使用缺省函數(shù)

大致了解了一下缺省函數(shù),接下來(lái)讓我們實(shí)踐一下,比方說(shuō)我要計(jì)算一批長(zhǎng)方體的體積,但它們大部分長(zhǎng)寬均為5,高度全都不同。這時(shí)使用缺省函數(shù)便可以很好地解決問題

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

有的小伙伴便很自然地寫出了下面這段代碼,看似沒有問題,但編譯器卻報(bào)錯(cuò)了。而之所以會(huì)報(bào)錯(cuò)是因?yàn)檫@種寫法時(shí)有歧義的,就像圖中,傳遞了一個(gè)10過去給函數(shù),編譯器該如何知道這個(gè)10是傳給l,w,還是h的?因此我們寫缺省函數(shù)的時(shí)候遵循一個(gè)原則,那就是缺省函數(shù)參數(shù)只能從右往左連續(xù)地缺省,而不能跳躍著或者是間斷著缺省。

簡(jiǎn)單地進(jìn)行修改便可以得到下圖函數(shù),而在之后我們想要很快速的計(jì)算長(zhǎng)寬均為5的長(zhǎng)方體時(shí),便只需要傳遞一個(gè)參數(shù),且當(dāng)我們要計(jì)算的長(zhǎng)方體長(zhǎng)寬不是5時(shí),我們也可以正常地進(jìn)行參數(shù)的傳遞

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

1.4測(cè)試代碼

#include<iostream>
using namespace std;
float Volume(float h ,float l=5 ,float w=5)
{
	return l*w*h;
}

int main()
{
	float a = Volume(10);
	cout<<"長(zhǎng)方體的體積為" << a << endl;
	a = Volume(10,10,5.5);
	cout << "長(zhǎng)方體的體積為" << a << endl;
	a = Volume(9,6);
	cout << "長(zhǎng)方體的體積為" << a << endl;
}

二、函數(shù)重載

2.1什么是函數(shù)重載?

函數(shù)重載:是函數(shù)的一種特殊情況,C++允許在同一作用域中聲明幾個(gè)功能類似的同名函數(shù),這些同名函數(shù)的形參列表(參數(shù)個(gè)數(shù)或類型或類型順序)不同,常用來(lái)處理實(shí)現(xiàn)功能類似數(shù)據(jù)類型不同的問題。

2.2為什么要有函數(shù)重載

看完概念的小伙伴一定會(huì)有一個(gè)疑惑,那就是這個(gè)函數(shù)重載它有用嗎,在學(xué)習(xí)c的時(shí)候老師嚴(yán)肅強(qiáng)調(diào)的一件事就是絕對(duì)不要?jiǎng)?chuàng)建相同名字的函數(shù)或者是相同名字的變量,否則會(huì)導(dǎo)致編譯器識(shí)別紊亂。

而在C++中,反而支持這種行為,這是為什么呢?C++之父Bjarne Stroustrup,在寫出C++這門語(yǔ)言之前是當(dāng)之無(wú)愧大大C語(yǔ)言大師,而他之所以會(huì)去寫一個(gè)新的語(yǔ)言,純粹是因?yàn)樗X得這C語(yǔ)言也太費(fèi)勁了,這也不行那也不行,我想搞幾個(gè)名字相同,功能類似,參數(shù)不同的函數(shù)都不行。

寫個(gè)浮點(diǎn)數(shù)加法得float add_float(float a,float b);再寫個(gè)整型加法得 int add_int(int a,int b); 功能一樣,還得重新給它搞個(gè)名字。

而在C++中就可以不用這么麻煩,直接float add(float a,float b);int?add(int?a,int?b);完全不需要再去取新的名字,一個(gè)名字就搞定了,C++會(huì)自動(dòng)識(shí)別參數(shù)的類型,然后將其運(yùn)用到恰當(dāng)?shù)暮瘮?shù)

2.3什么情況構(gòu)成函數(shù)重載

構(gòu)成函數(shù)重載的情況有兩種,一種是參數(shù)類型不同,一種是參數(shù)個(gè)數(shù)不同。有的書上會(huì)多寫一個(gè)順序不同,但順序不同的本質(zhì)其實(shí)也就是類型不同。而返回值是不作為函數(shù)重載的考慮范圍的,也就是說(shuō),兩個(gè)函數(shù)即使參數(shù)類型和個(gè)數(shù)都相同,它們的返回值不同也是不構(gòu)成函數(shù)重載的。

2.4函數(shù)重載例子及代碼

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

#include<iostream>
using namespace std;
int add(int a, int b)
{
	return a + b;
}
float add(float a, float b)
{
	return a + b;
}

int add(int a, float b)
{
	return a + b;
}
int main()
{
	int a = 20; int b = 101;
	float x = 5.5; float y = 3.14;
	cout<<add(x,y)<<endl;
	cout<<add(a,b)<<endl;
	cout<<add(a,x)<<endl;
	cout<<add(b,x)<<endl;
}

?三、引用

3.1什么是引用

引用不是新定義一個(gè)變量,而是給已存在變量取了一個(gè)別名,編譯器不會(huì)為引用變量開辟內(nèi)存空間,它和它引用的變量共用同一塊內(nèi)存空間。舉個(gè)例子,孫悟空有很多個(gè)外號(hào):孫行者,行者孫,齊天大圣,斗戰(zhàn)勝佛,弼馬溫,石猴......這些就都是孫悟空的別名,但也都代表著孫悟空,而不是什么六耳獼猴

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

3.2如何引用

在創(chuàng)建變量的時(shí)候,在變量名前加&即可實(shí)現(xiàn),注意:在這里不是取地址符。通過圖片可以看出,a是b,b也是a,b和a的本質(zhì)是一樣的

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

打印地址更是強(qiáng)有力的證明了我們的觀點(diǎn)?

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

必須重視的幾點(diǎn)

1.引用在定義時(shí)必須要初始化

2.一個(gè)變量可以有多個(gè)引用,就像一個(gè)人可以有多個(gè)外號(hào)一樣

3.引用一旦指向了一個(gè)實(shí)體就不能再指向其他實(shí)體,可理解為一個(gè)外號(hào)不能對(duì)應(yīng)多個(gè)人

接下來(lái)挨個(gè)驗(yàn)證

引用在定義時(shí)必須要初始化

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

一個(gè)變量可以有多個(gè)引用,就像一個(gè)人可以有多個(gè)外號(hào)一樣?

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

?引用一旦指向了一個(gè)實(shí)體就不能再指向其他實(shí)體,可理解為一個(gè)外號(hào)不能對(duì)應(yīng)多個(gè)人

3.3常引用(可略過)

? 在對(duì)常量進(jìn)行引用的時(shí)候我們需要注意的一點(diǎn)便是,不能夠放大權(quán)限,a既然不能被修改,那么它的別名更不可能被修改。雖然權(quán)限不能放大,但權(quán)限是可以縮小或等價(jià)的,等價(jià)就如我們平時(shí)的引用,兩邊的基本類型相同,縮小便是在原變量的基礎(chǔ)上給它進(jìn)一步的限制。

放大權(quán)限

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

縮小權(quán)限

可以看出,a依然可以對(duì)值進(jìn)行修改,但b不可以。這在實(shí)踐中是非常有用的?

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法?C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

3.4引用和指針的對(duì)比

C++初階 入門(2),C++初階,c++,開發(fā)語(yǔ)言,算法

可以看的出第一個(gè)使用引用的Swap函數(shù)是很美觀的,沒有那么多的解引用符號(hào),這大大增加了代碼的可讀性。

總結(jié):(第五點(diǎn)自己去證明下)

1. 引用概念上定義一個(gè)變量的別名,指針存儲(chǔ)一個(gè)變量地址。
2. 引用在定義時(shí)必須初始化,指針沒有要求
3. 引用在初始化時(shí)引用一個(gè)實(shí)體后,就不能再引用其他實(shí)體,而指針可以在任何時(shí)候指向任何
一個(gè)同類型實(shí)體
4. 沒有NULL引用,但有NULL指針
5. 在sizeof中含義不同:引用結(jié)果為引用類型的大小,但指針始終是地址空間所占字節(jié)個(gè)數(shù)(32
位平臺(tái)下占4個(gè)字節(jié))
6. 引用自加即引用的實(shí)體增加1,指針自加即指針向后偏移一個(gè)類型的大小

好了,今天的分享到這里就結(jié)束了,感謝各位友友的來(lái)訪和閱讀,祝各位友友們前程似錦O(∩_∩)O?

?

到了這里,關(guān)于C++初階 入門(2)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C++初階之C++入門最全詳解

    C++初階之C++入門最全詳解

    C++總計(jì)63個(gè),C語(yǔ)言32個(gè) 在C/C++中,變量、函數(shù)和后面要學(xué)到的類都是大量存在的,這些變量、函數(shù)和類的名稱將都存 在于全局作用域中,可能會(huì)導(dǎo)致很多沖突。使用命名空間的目的是對(duì)標(biāo)識(shí)符的名稱進(jìn)行本地化, 以避免命名沖突或名字污染,namespace的出現(xiàn)

    2024年02月16日
    瀏覽(28)
  • 【初階C++】入門(超詳解)

    【初階C++】入門(超詳解)

    C++是在C的基礎(chǔ)之上,容納進(jìn)去了面向?qū)ο缶幊趟枷?,并增加了許多有用的庫(kù),以及編程范式等。熟悉C語(yǔ)言之后,對(duì)C++學(xué)習(xí)有一定的幫助,本章節(jié)主要目標(biāo): 補(bǔ)充C語(yǔ)言語(yǔ)法的不足,以及C++是如何對(duì)C語(yǔ)言設(shè)計(jì)不合理的地方進(jìn)行優(yōu)化的,比如:作用域方面、IO方面、函數(shù)方面、指

    2024年02月04日
    瀏覽(49)
  • C++初階--C++入門

    C++初階--C++入門

    從本章開始,我們就要正式的進(jìn)入到C++的學(xué)習(xí)了。C++是在C的基礎(chǔ)之上,容納進(jìn)去了 面向?qū)ο缶幊?思想,并增加了許多有用的庫(kù),以及編程范式等,同時(shí) 對(duì)C語(yǔ)言某些設(shè)計(jì)不合理的地方進(jìn)行優(yōu)化,如在作用域,IO,函數(shù),指針以及宏方面 。下面我們先從一些較容易理解的知識(shí)

    2024年02月15日
    瀏覽(14)
  • C++初階 入門(2)

    C++初階 入門(2)

    目錄 一、缺省函數(shù) 1.1什么是缺省函數(shù) 1.2為什么要有缺省函數(shù) 1.3使用缺省函數(shù) 1.4測(cè)試代碼 二、函數(shù)重載 2.1什么是函數(shù)重載? 2.2為什么要有函數(shù)重載 2.3什么情況構(gòu)成函數(shù)重載 2.4函數(shù)重載例子及代碼 ?三、引用 3.1什么是引用 3.2如何引用 ?3.3常引用(可略過) 3.4引用和指針的對(duì)

    2024年02月08日
    瀏覽(17)
  • C++初階 入門

    C++初階 入門

    ? 目錄 1.用C++的方式寫一個(gè)Hello World 2.命名空間 2.1什么是命名空間? 2.2使用命名空間 3.C++的輸入輸出? 前言:C++初階系列,每一期博主都會(huì)使用簡(jiǎn)單樸素的語(yǔ)言將對(duì)應(yīng)的知識(shí)分享給大家,爭(zhēng)取讓所有人都可以聽懂,C++初階系列會(huì)持續(xù)更新,上學(xué)期間將不定時(shí)更新,但總會(huì)更的

    2024年02月07日
    瀏覽(15)
  • 【C++初階】C++入門——缺省參數(shù)、函數(shù)重載

    【C++初階】C++入門——缺省參數(shù)、函數(shù)重載

    ?缺省參數(shù)是 聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)缺省值 。在調(diào)用該函數(shù)時(shí),如果沒有指定實(shí)參則采用該形參的缺省值,否則使用指定的實(shí)參。 ?上面代碼在 fun 函數(shù)的形參部分給了缺省值10,這意味著在調(diào)用 fun 函數(shù)的時(shí)候可以傳參,也可以不傳參,如果傳參了那形參

    2024年02月11日
    瀏覽(18)
  • 【C++初階】---C++入門篇

    【C++初階】---C++入門篇

    ??個(gè)人主頁(yè):@小沈YO. ??小編介紹:歡迎來(lái)到我的亂七八糟小星球?? ??專欄:C++ 心愿便利店 ??本章內(nèi)容:命名空間、缺省參數(shù) 記得 評(píng)論?? +點(diǎn)贊?? +收藏?? +關(guān)注??哦~ C語(yǔ)言最初由 Dennis Ritchie 于 1969 年到 1973 年在 ATT 貝爾實(shí)驗(yàn)室里開發(fā)出來(lái),主要用于重新實(shí)現(xiàn) Unix 操作

    2024年02月16日
    瀏覽(20)
  • 【C++初階】第一站:C++入門基礎(chǔ)(中)

    【C++初階】第一站:C++入門基礎(chǔ)(中)

    前言: 這篇文章是c++入門基礎(chǔ)的第一站的中篇,涉及的知識(shí)點(diǎn) 函數(shù)重載 : 函數(shù)重載的原理--名字修飾 引用:概念、特性、使用場(chǎng)景、常引用、傳值、傳引用效率比較的知識(shí)點(diǎn) 目錄 5. 函數(shù)重載 (續(xù)) C++支持函數(shù)重載的原理--名字修飾(name Mangling) 為什么C++支持函數(shù)重載,而C語(yǔ)言

    2024年02月05日
    瀏覽(51)
  • 【C++初階】第一站:C++入門基礎(chǔ)(下)

    【C++初階】第一站:C++入門基礎(chǔ)(下)

    前言:? 緊接著上兩篇文章,c++入門基礎(chǔ)(上):C++入門基礎(chǔ)(上) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?c++入門基礎(chǔ)(中):C++入門基礎(chǔ)(中) ????????繼續(xù)補(bǔ)充完c++初階入門基礎(chǔ)的知識(shí)點(diǎn),本章知識(shí)點(diǎn)包括: ????????引用和指針的區(qū)別、內(nèi)聯(lián)函數(shù)、auto(C++11)、基于范圍

    2024年02月04日
    瀏覽(53)
  • 【C++初階】C++入門——C++介紹、命名空間、輸入輸出

    【C++初階】C++入門——C++介紹、命名空間、輸入輸出

    ?C語(yǔ)言是 結(jié)構(gòu)化 和 模塊化 的語(yǔ)言,適合處理 較小規(guī)模 的程序。對(duì)于復(fù)雜的問題,規(guī)模較大的程序,需要高度的抽象和建模時(shí),C語(yǔ)言則不合適。為了解決軟件危機(jī),20世紀(jì)80年代,計(jì)算機(jī)界提出了 OOP (object oriented programming: 面向?qū)ο?)思想,支持面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言應(yīng)

    2024年02月11日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包