免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

C++基礎【1】-創新互聯

目錄

前言

為遂溪等地區用戶提供了全套網頁設計制作服務,及遂溪網站建設行業解決方案。主營業務為成都網站制作、成都做網站、外貿營銷網站建設、遂溪網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

一、命名空間

1.1 命名空間的原理

1.2?命名空間的定義

???????1.3?命名空間的使用的三種方式

二、C++輸入&輸出

1.1 說明

1.1cout和cin

三.缺省參數

3.1

3.2

3.3

3.4

3.5 缺省的分類

void Func(int a, int b = 10, int c = 20) //半缺省

void Func(int a = 10, int b = 20, int c = 30) ?全缺省

4.函數重載

4.1 函數重載:

4.2 編譯流程

4.3?C++支持函數重載的原理--名字修飾(name Mangling)

總結



前言

命名空間,缺省,輸入輸出,函數重載


提示:以下是本篇文章正文內容,下面案例可供參考

一、命名空間 命名空間的使用主要是為了避免命名沖突和名字污染。 1.1 命名空間的原理

首先明確一點,namespace塊只能在全局作用域定義,且塊里定義的變量(包括函數,結構體等等)也是具有文件作用域的。namespace的作用相當于將塊內定義遮蓋起來,當你正常使用塊內定義的變量時,編

1.2?命名空間的定義 定義命名空間,需要使用到 namespace 關鍵字 ,后面跟 命名空間的名字 ,然 后接一對 {} 即可, {} 中即為命名空間的成員,就像下圖就行。

1.3?命名空間的使用的三種方式:建議用第一種和第二種 ,第三種相當于將namespace的域全部展開,隔離就失效了。
namespace N
{
    int a = 0;
    int Add(x,y)
    {
        return x+y;
    }    
    int b = 10
}


int main()
{
 ? ?printf("%d\n", N::a);//加命名空間名稱及作用域限定符
 ? ?return 0; ? ?
}

using N::b;//使用using將命名空間中某個成員引入
int main()
{
 ? ?printf("%d\n", N::a);
 ? ?printf("%d\n", b);
 ? ?return 0; ? ?
}


using namespce N;//使用using namespace 命名空間名稱 引入
int main()
{
 ? ?printf("%d\n", N::a);
 ? ?printf("%d\n", b);
 ? ?Add(10, 20);
 ? ?return 0; ? ?
}

二、C++輸入&輸出

1.1 說明 1.使用 cout 標準輸出對象 ( 控制臺 ) 和 cin 標準輸入對象 ( 鍵盤 ) 時,必須 包含< iostream >頭文件 以及按命名空間使用方法使用 std 。 2.cout 和 cin 是全局的流對象, endl 是特殊的 C++ 符號,表示換行輸出,他們都包含在包含< iostream >頭文件中。 3.<< 是流插入運算符, >>是流提取運算符 。 1.1cout和cin

代碼如下(示例):

using std::cout;
using std::endl;
using std::cin;

int main()
{
?int a;
?cin >>a;
?cout<< "longwang"<< a;
}

三.缺省參數 3.1 半缺省參數必須 從右往左依次 來給出,不能間隔著給 3.2 缺省參數不能在函數聲明和定義中同時出現 3.3 缺省值必須是常量或者全局變量 3.4 C 語言不支持(編譯器不支持) 3.5 缺省的分類
void Func(int a, int b = 10, int c = 20) //半缺省 void Func(int a = 10, int b = 20, int c = 30) ?全缺省

4.函數重載 4.1 函數重載: 是函數的一種特殊情況, C++ 允許在 同一作用域中 聲明幾個功能類似 的同名函數 ,這 些同名函數的 形參列表 ( 參數個數 或 類型 或 類型順序 ) 不同 ,常用來處理實現功能類似數據類型 不同的問題。 4.2 編譯流程

要理解名字修飾的原理,首先要知道編譯流程。

4.3?C++支持函數重載的原理--名字修飾(name Mangling)

c在處理名字符號時,用的方式相當簡單,而c++則不同。

不同編譯器的名字修飾規則不同,這里講的是g++的規則.

這是上圖用g++編譯后,用objdump -S導出的匯編程序,

這里的<_Z1fv>代表f(),1表示函數名長度,f是函數名,v表示參數首字母。

<_Z1fii>同理 1是長度,f是函數名,ii表示連個int 類型的參數。

4.4 一種特殊情況
void f(int a = 0, int b = 0)
{
	printf("f(a= 0,b=0)");
}

void f()
{
	printf("f()");
}

int main()
{
	f();
	return 0;
}

當出現上述代碼時,會出現調用沖突,因為沒有單一路徑,所以編譯器無法選擇使用哪個函數。


總結

以上就是今天要講的內容/

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

當前標題:C++基礎【1】-創新互聯
分享URL:http://m.newbst.com/article0/cogsio.html

成都網站建設公司_創新互聯,為您提供網站制作面包屑導航動態網站網站設計外貿建站商城網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作