国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

C++入門—namespace的使用傻傻分不清楚&C++中函數(shù)的參數(shù)也可以配備胎&a

pingan8787 / 824人閱讀

摘要:使用輸入輸出更方便,不需增加數(shù)據(jù)格式控制,比如整形,字符等缺省參數(shù)備胎缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)默認(rèn)值。此外,函數(shù)重載要求參數(shù)不同,而跟返回值沒關(guān)系。

關(guān)鍵字

定義:C++系統(tǒng)中預(yù)定義的、在語言或編譯系統(tǒng)的實(shí)現(xiàn)中具有特殊含義的單詞。
例如關(guān)鍵字不能用作變量名、函數(shù)名等

命名空間

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

語法:

  1. 定義命名空間,需要使用到namespace關(guān)鍵字,后面跟命名空間的名字,然后接一對{}即可,{}中即為命名空間的成員。
  2. eg:namespace Aug {}
namespace Aug  // Aug為命名空間的名稱{	int rand = 0;//rand為Aug空間的成員}
namespace N{ int a; int b; int Add(int left, int right) { return left + right; }  namespace M { int c; int d; int Sub(int left, int right) { return left - right; } }}

注意:

  1. 命名空間中的內(nèi)容,既可以定義變量,也可以定義函數(shù),宏等
  2. 命名空間可以嵌套

注意:
同一個(gè)工程中允許存在多個(gè)相同名稱的命名空間,編譯器最后會合成同一個(gè)命名空間中。

命名空間使用

注意:
一個(gè)命名空間就定義了一個(gè)新的作用域,命名空間中的所有內(nèi)容都局限于該命名空間中

第一種:加命名空間名稱及作用域限定符

第二種:使用using namespace 命名空間名稱引入

第三種:使用using將命名空間中成員引入

注意(重點(diǎn)):


輸入&輸出

使用cout標(biāo)準(zhǔn)輸出(控制臺)和cin標(biāo)準(zhǔn)輸入(鍵盤)時(shí),必須包含< iostream >頭文件以及std標(biāo)準(zhǔn)命名空間。
注意:早期標(biāo)準(zhǔn)庫將所有功能在全局域中實(shí)現(xiàn),聲明在.h后綴的頭文件中,使用時(shí)只需包含對應(yīng)頭文件即可,后來將其實(shí)現(xiàn)在std命名空間下,為了和C頭文件區(qū)分,也為了正確使用命名空間,規(guī)定C++頭文件不帶.h;舊編譯器(vc 6.0)中還支持格式,后續(xù)編譯器已不支持,因此推薦使用 < iostream > +std的方式。

使用C++輸入輸出更方便,不需增加數(shù)據(jù)格式控制,比如:整形–%d,字符–%c等

缺省參數(shù)(備胎)

缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)默認(rèn)值。
在調(diào)用該函數(shù)時(shí),如果沒有指定實(shí)參則采用該默認(rèn)值,否則使用指定的實(shí)參

#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;void TestFunc(int a = 0) {	cout << a << endl;}int main(){	TestFunc(); // 沒有傳參時(shí),使用參數(shù)的默認(rèn)值,相當(dāng)于TestFunc(0);	TestFunc(10); // 傳參時(shí),使用指定的實(shí)參}

全缺省參數(shù)

void TestFunc(int a = 10, int b = 20, int c = 30) { cout<<"a = "<<a<<endl; cout<<"b = "<<b<<endl; cout<<"c = "<<c<<endl;  }

半缺省參數(shù)

void TestFunc(int a, int b = 10, int c = 20) { cout<<"a = "<<a<<endl; cout<<"b = "<<b<<endl; cout<<"c = "<<c<<endl;  }

注意:

  1. 缺省參數(shù)分為全缺省參數(shù)和半缺省參數(shù)
  2. 半缺省參數(shù)必須從右往左依次來給出,不能間隔著給
  3. 缺省參數(shù)不能在函數(shù)聲明和定義中同時(shí)出現(xiàn)
  4. 如果生命與定義位置同時(shí)出現(xiàn),恰巧兩個(gè)位置提供的值不同,那編譯器就無法確定到底該用那個(gè)缺省值。
  5. 缺省值必須是常量或者全局變量
  6. C語言不支持(編譯器不支持)

函數(shù)重載(面試常考題)

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

#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;int Add(int left, int right) {	return left + right;}double Add(double left, double right) {	return left + right;}long Add(long left, long right) {	return left + right;}int main(){	Add(10, 20);	Add(10.0, 20.0);	Add(10L, 20L);	return 0;}

名字修飾(name Mangling)


為什么C++支持函數(shù)重載,而C語言不支持函數(shù)重載呢?

  • 在C/C++中,一個(gè)程序要運(yùn)行起來,需要經(jīng)歷以下幾個(gè)階段:預(yù)處理、編譯、匯編、鏈接。
  • 通過用Linux操作gcc(編寫C的編譯器)的函數(shù)修飾后名字不變。而g++(編寫C++的編譯器)的函數(shù)修飾后變成【_Z+函數(shù)長度+函數(shù)名+類型首字母】。

采用gcc編譯完成后,函數(shù)名字的修飾沒有發(fā)生改變。

采用g++編譯完成后,函數(shù)名字的修飾發(fā)生改變,編譯器將函數(shù)參數(shù)類型信息添加到修改后的名字中。

  • 通過上面的解釋就知道C語言沒辦法支持重載,因?yàn)橥瘮?shù)沒辦法區(qū)分。而C++是通過函數(shù)修飾規(guī)則來區(qū)分,只要參數(shù)不同,修飾出來的名字就不一樣,就支持了重載。
  • 此外,函數(shù)重載要求參數(shù)不同,而跟返回值沒關(guān)系。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/121137.html

相關(guān)文章

  • webpack多頁應(yīng)用架構(gòu)系列(七):開發(fā)環(huán)境、生產(chǎn)環(huán)境傻傻分不清楚

    摘要:開發(fā)環(huán)境和生產(chǎn)環(huán)境都擁有的配置,但在細(xì)節(jié)上有所不同,比如說,又比如說中的和參數(shù)。更重要的是,實(shí)際上開發(fā)環(huán)境和生產(chǎn)環(huán)境的配置文件的絕大部分都是一致的,對于這一致的部分來說,我們堅(jiān)決要消除冗余,否則后續(xù)維護(hù)起來不僅麻煩,而且還容易出錯(cuò)。 本文首發(fā)于Array_Huang的技術(shù)博客——實(shí)用至上,非經(jīng)作者同意,請勿轉(zhuǎn)載。原文地址:https://segmentfault.com/a/11900...

    paulquei 評論0 收藏0
  • python怎么實(shí)現(xiàn)自動生成C++代碼

      小編寫這篇文章,主要目的還是給大家講一下關(guān)于python代碼的相關(guān)事宜,比如怎么才能夠?qū)崿F(xiàn)自動生產(chǎn)C++代碼,這里面還是比較的復(fù)雜的,下面小編就給大家貼出具體的代碼給大家來看下。  遇到的問題  工作中遇到這么一個(gè)事,需要寫比較多的C++的底層數(shù)據(jù)庫類,但這些類大同小異,無非是增刪改查,如果人工來寫代碼,既費(fèi)力又容易出錯(cuò);而借用python的代碼自動生成,可以輕松搞定;  (類比JAVA中的H...

    89542767 評論0 收藏0
  • 最適合入門Laravel初級教程(五)

    摘要:最適合入門的初級教程五路由咱會創(chuàng)建了控制器也有了接下來要搞的就是把兩者關(guān)聯(lián)起來了最適合入門的初級教程三我們講過的或者方法第一個(gè)參數(shù)就是我們要定義的路由就是我們在地址欄請求的那段第二個(gè)參數(shù)可以是一個(gè)閉包函數(shù)里面寫請求定義的路由時(shí)執(zhí)行的內(nèi)容上篇 最適合入門的Laravel初級教程(五) 路由咱會創(chuàng)建了; 控制器也有了;接下來要搞的就是把兩者關(guān)聯(lián)起來了;最適合入門的laravel初級教程(三...

    kamushin233 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<