中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

移動(dòng)網(wǎng)站建設(shè)哪家好什么平臺可以打廣告做宣傳

移動(dòng)網(wǎng)站建設(shè)哪家好,什么平臺可以打廣告做宣傳,廣州哪家做網(wǎng)站還可以,工業(yè)設(shè)計(jì)招聘信息網(wǎng)站朋友們、伙計(jì)們,我們又見面了,本期來給大家解讀一下有關(guān)C語言的相關(guān)知識點(diǎn),如果看完之后對你有一定的啟發(fā),那么請留下你的三連,祝大家心想事成! C 語 言 專 欄:C語言:從入門到精通 數(shù)…

朋友們、伙計(jì)們,我們又見面了,本期來給大家解讀一下有關(guān)C++語言的相關(guān)知識點(diǎn),如果看完之后對你有一定的啟發(fā),那么請留下你的三連,祝大家心想事成!

C 語 言 專 欄:C語言:從入門到精通

數(shù)據(jù)結(jié)構(gòu)專欄:數(shù)據(jù)結(jié)構(gòu)

個(gè)? 人? 主? 頁?:stackY、

?

目錄

前言:

1. 什么是C++

2. C++的發(fā)展史

3. C++關(guān)鍵字(C++98)?

4.命名空間

4.1 命名空間定義?

4.2命名空間的使用

4.2.1命名空間使用的三種方式

5.輸入、輸出?

6.缺省參數(shù)

6.1缺省參數(shù)概念

6.2缺省參數(shù)的分類


前言:

在之前的所有的文章我都是用C語言的方式實(shí)現(xiàn)的各種代碼,那么本期往后我將會采用C++語言,那么在本期首先讓我們了解一下C++的基本發(fā)展以及C++相比C語言又需要注意的點(diǎn),話不多說,我們直接開始:

1. 什么是C++

????????C語言結(jié)構(gòu)化和模塊化的語言,適合處理較小規(guī)模的程序。對于復(fù)雜的問題,規(guī)模較大的程序,需要高度的抽象和建模時(shí),C語言則不合適。為了解決軟件危機(jī), 20世紀(jì)80代, 計(jì)算機(jī)界提出了OOP(object oriented programming:面向?qū)ο?思想,支持面向?qū)ο?/strong>的程序設(shè)計(jì)語言應(yīng)運(yùn)而生。
????????1982年,Bjarne Stroustrup博士在C語言的基礎(chǔ)上引入并擴(kuò)充了面向?qū)ο?/strong>的概念,發(fā)明了一種新的程序語言。為了表達(dá)該語言與C語言的淵源關(guān)系,命名為C++。因此:C++是基于C語言而產(chǎn)生的,它既可以進(jìn)行C語言的過程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對象的 程序設(shè)計(jì),還可以進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì)。

C++祖師爺:?本賈尼·斯特勞斯特盧普(Bjarne Stroustrup)

2. C++的發(fā)展史

1979年,貝爾實(shí)驗(yàn)室的本賈尼等人試圖分析unix內(nèi)核的時(shí)候,試圖將內(nèi)核模塊化,于是在C
語言的基礎(chǔ)上進(jìn)行擴(kuò)展,增加了類的機(jī)制,完成了一個(gè)可以運(yùn)行的預(yù)處理程序,稱之為
C with classes。
語言的發(fā)展就像是練功打怪升級一樣,也是逐步遞進(jìn),由淺入深的過程。我們先來看下C++的歷史版本。

?

? ?階段? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 內(nèi)容
C with
classes
類及派生類、公有和私有成員、類的構(gòu)造和析構(gòu)、友元、內(nèi)聯(lián)函數(shù)、賦值運(yùn)算符
重載等
C++1.0
添加虛函數(shù)概念,函數(shù)和運(yùn)算符重載,引用、常量等
C++2.0
更加完善支持面向?qū)ο?#xff0c;新增保護(hù)成員、多重繼承、對象的初始化、抽象類、靜
態(tài)成員以及 const 成員函數(shù)
C++3.0
進(jìn)一步完善,引入模板,解決多重繼承產(chǎn)生的二義性問題和相應(yīng)構(gòu)造和析構(gòu)的處
C++98
C++ 標(biāo)準(zhǔn)第一個(gè)版本 ,絕大多數(shù)編譯器都支持,得到了國際標(biāo)準(zhǔn)化組織 (ISO) 和美
國標(biāo)準(zhǔn)化協(xié)會認(rèn)可, 以模板方式重寫 C++ 標(biāo)準(zhǔn)庫,引入了 STL( 標(biāo)準(zhǔn)模板庫 )
C++03
C++ 標(biāo)準(zhǔn)第二個(gè)版本,語言特性無大改變,主要:修訂錯(cuò)誤、減少多異性
C++05
C++ 標(biāo)準(zhǔn)委員會發(fā)布了一份計(jì)數(shù)報(bào)告 (Technical Report TR1) ,正式更名
C++0x ,即:計(jì)劃在本世紀(jì)第一個(gè) 10 年的某個(gè)時(shí)間發(fā)布
C++11
增加了許多特性,使得 C++ 更像一種新語言,比如:正則表達(dá)式、基于范圍 for
環(huán)、 auto 關(guān)鍵字、新容器、列表初始化、標(biāo)準(zhǔn)線程庫等
C++14
C++11 的擴(kuò)展,主要是修復(fù) C++11 中漏洞以及改進(jìn),比如:泛型的 lambda
達(dá)式, auto 的返回值類型推導(dǎo),二進(jìn)制字面常量等
C++17
C++11 上做了一些小幅改進(jìn),增加了 19 個(gè)新特性,比如: static_assert() 的文
本信息可選, Fold 表達(dá)式用于可變的模板, if switch 語句中的初始化器等
C++20
C++11 以來最大的發(fā)行版 ,引入了許多新的特性,比如: 模塊 (Modules) 、協(xié)
(Coroutines) 、范圍 (Ranges) 、概念 (Constraints) 等重大特性,還有對已有
特性的更新:比如 Lambda 支持模板、范圍 for 支持初始化等
C++23
制定 ing

3. C++關(guān)鍵字(C++98)?

C++總計(jì)63個(gè)關(guān)鍵字,C語言32個(gè)關(guān)鍵字
在C++中的關(guān)鍵字有一部分在C語言階段都以及接觸過了,所以就不對具體的關(guān)鍵字進(jìn)行太多的解釋,在后續(xù)的學(xué)習(xí)中會細(xì)致解釋:

4.命名空間

?在了解命名空間前我們可以先來看一看在屏幕上打印 Hello World! 這個(gè)字符串,C++程序和C語言程序的不同

C語言程序:

//頭文件的包含
#include <stdio.h>//主函數(shù)
int main()
{//打印函數(shù)printf("Hello World!\n");return 0;
}

C++程序:

//頭文件的包含
#include <iostream>//命名空間的展開
using namespace std;//主函數(shù)
int main()
{//打印cout << "Hello World!" << endl;return 0;
}

1. 兩者頭文件的包含有區(qū)別

2. C++中多了一個(gè)命名空間

3. 兩者輸出(打印)函數(shù)有區(qū)別

那么接下來就來了解一下C++中這個(gè)神奇的功能:命名空間

在C/C++中,變量、函數(shù)和后面要學(xué)到的類都是大量存在的,這些變量、函數(shù)和類的名稱將都存在于全局作用域中,可能會導(dǎo)致很多沖突。使用命名空間的目的是對標(biāo)識符的名稱進(jìn)行本地化,避免命名沖突或名字污染,namespace關(guān)鍵字的出現(xiàn)就是針對這種問題。
#include <stdio.h>
#include <stdlib.h>int rand = 10;int main()
{//C語言沒辦法解決類似這樣的命名沖突問題,所以C++提出了namespace來解決printf("%d\n", rand);return 0;
}

這樣的程序是會報(bào)錯(cuò)的(錯(cuò)誤C2365??“rand”: 重定義;以前的定義是“函數(shù)”?),因?yàn)槲覀冏约憾x的變量rand和庫里面的rand名稱沖突,如果要解決就需要重新命名,那么在C++中就提出了namespace來解決這個(gè)問題。

4.1 命名空間定義?

定義命名空間,需要使用到namespace關(guān)鍵字,后面跟命名空間的名字,然后接一對{}即可,{} 中即為命名空間的成員。

1.正常的命名空間定義

命名空間中可以定義變量、函數(shù)、類型

//命名空間的名字是任意的,在這里我使用的是我的名字的縮寫// 1. 正常的命名空間定義
namespace ywh
{// 命名空間中可以定義變量/函數(shù)/類型//變量int rand = 0;char ch = 'a';int a[10] = { 0 };//函數(shù)int Add(int x, int y){return x + y;}//類型struct Node{int val;struct Node* next;};
}

?2.命名空間可以進(jìn)行嵌套

//2. 命名空間可以進(jìn)行嵌套
//Test.cpp
namespace N1
{int a;int b;int Add(int x, int y){return x + y;}//進(jìn)行嵌套namespace N2{int c;int d;int Sub(int x, int y){return x - y;}}
}

3. 允許存在多個(gè)相同名稱的命名空間

頭文件Test.h

//3. 同一個(gè)工程中允許存在多個(gè)相同名稱的命名空間,編譯器最后會合成同一個(gè)命名空間中。
//Test.h
namespace N1
{int Mul(int x, int y){return x * y;}
}
一個(gè)工程中的T est.h 和上面T est.cpp 中兩個(gè) N1 會被合并成一個(gè)
*注意:
一個(gè)命名空間就定義了一個(gè)新的作用域 ,命名空間中的所有內(nèi)容都局限于該命名空間中。

4.2命名空間的使用

首先說明C++是兼容C語言的,所以在C++編譯文檔中也是可以使用C語言的。

定義好了命名空間,那么該怎么使用呢?看下面的代碼:

//命名空間的使用
namespace N1
{int a = 10;int b = 20;int Add(int x, int y){return x + y;}
}int main()
{printf("%d\n", a);return 0;
}

這段代碼在編譯的時(shí)候會報(bào)錯(cuò):“a”未聲明的標(biāo)識符。也就是說編譯器不認(rèn)識我們自己定義的命名空間,那么命名空間正確的使用方式是怎么樣的呢?

4.2.1命名空間使用的三種方式

1.加命名空間名稱及作用域限定符?

這里要使用到一個(gè)知識點(diǎn):預(yù)作用限定符“ ::”,在這里它的作用是訪問命名空間成員,使用“ ::”可以指定要訪問的命名空間中的成員。

//命名空間的使用
namespace N1
{int a = 10;int b = 20;int Add(int x, int y){return x + y;}
}int main()
{//使用預(yù)作用限定符printf("%d\n", N1::a);return 0;
}

2.使用using將命名空間中某個(gè)成員引入

//命名空間的使用
//部分展開
using N1::b;namespace N1
{int a = 10;int b = 20;int Add(int x, int y){return x + y;}
}int main()
{//使用預(yù)作用限定符printf("%d\n", N1::a);//使用usingprintf("%d\n", b);return 0;
}

3.使用using namespace 命名空間名稱 引入

//全部展開
using namespace N;namespace N
{int a = 1;int b = 0;int Add(int x, int y){return x + y;}
}int main()
{printf("%d\n", b);printf("%d\n", Add(10,20));return 0;
}

看到這里我們就可以對C++代碼的第一行的代碼進(jìn)行解讀:

using namespace std;

std是C++標(biāo)準(zhǔn)庫的命名空間,當(dāng)我們將std全部展開以后就可以直接用標(biāo)準(zhǔn)庫。

5.輸入、輸出?

?我們先來看看C++的輸入和輸出

#include<iostream>
// std是C++標(biāo)準(zhǔn)庫的命名空間名,C++將標(biāo)準(zhǔn)庫的定義實(shí)現(xiàn)都放到這個(gè)命名空間中
using namespace std;int main()
{//輸入int a = 0;cin >> a;//輸出cout << "Hello world!!!" << endl;cout << "a = " << a << endl;return 0;
}

說明:

1. 使用 cout 標(biāo)準(zhǔn)輸出對象 ( 控制臺 ) cin 標(biāo)準(zhǔn)輸入對象 ( 鍵盤 ) 時(shí),必須 包含 < iostream > 頭文件
以及按命名空間使用方法使用 std
2. cout cin 全局流對象 endl 是特殊的 C++ 符號,表示換行輸出,他們都包含在包含 <
iostream > 頭文件中。
3.<< 是流插入運(yùn)算符, >> 是流提取運(yùn)算符。
4.于C語言不同的是C++中的輸入和輸出是運(yùn)算符,而C語言中的輸入和輸出是函數(shù)。
5.使用 C++ 輸入輸出更方便,不需要像 printf/scanf 輸入輸出時(shí)那樣,需要手動(dòng)控制格式。
C++ 的輸入輸出可以自動(dòng)識別變量類型。
#include <iostream>
using namespace std;
int main()
{int a;double b;char c;// 可以自動(dòng)識別變量的類型cin >> a;cin >> b >> c;//自動(dòng)識別類型cout << a << endl;cout << b << " " << c << endl;return 0;
}

6.缺省參數(shù)

6.1缺省參數(shù)概念

缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)缺省值。在調(diào)用該函數(shù)時(shí),如果沒有指定實(shí)參則采用該形參的缺省值,否則使用指定的實(shí)參。
//         缺省參數(shù)          
void Func(int a = 1)
{cout << a << endl;
}
int main()
{// 沒有傳參時(shí),使用參數(shù)的默認(rèn)值Func();// 傳參時(shí),使用指定的實(shí)參Func(10); return 0;
}

6.2缺省參數(shù)的分類

?1.全缺省

//全缺省參數(shù)
void Fun(int a = 10, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;cout << endl;
}int main()
{// 顯示傳參,從左往右顯示傳參Fun();//傳一個(gè)參數(shù)默認(rèn)只能傳給第一個(gè)參數(shù)Fun(1);Fun(1, 2);Fun(1, 2, 3);//是不能這樣進(jìn)行傳參的//Fun(1, , 3);return 0;
}

2.半缺省參數(shù)

//半缺省參數(shù)
//必須從右往左給缺省值
void Fun(int a, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;cout << endl;
}int main()
{//半缺省不能傳空Fun(1);Fun(1, 2);Fun(1, 2, 3);return 0;
}

注意:

1.? 半缺省參數(shù)必須從右往左依次來給出,不能間隔著給。
2.? 缺省參數(shù)不能在函數(shù)和聲明中同時(shí)出現(xiàn)(聲明給,定義不給)。
3.??缺省值必須是常量或者全局變量
4.??C語言不支持(編譯器不支持)。

朋友們、伙計(jì)們,美好的時(shí)光總是短暫的,我們本期的的分享就到此結(jié)束,最后看完別忘了留下你們彌足珍貴的三連喔,感謝大家的支持!?

http://www.risenshineclean.com/news/55459.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)分金手指排名十百度網(wǎng)絡(luò)電話
  • 響應(yīng)式制作網(wǎng)站建設(shè)線上教育培訓(xùn)機(jī)構(gòu)十大排名
  • 網(wǎng)站導(dǎo)航圖怎么做百度推廣登錄網(wǎng)站
  • 網(wǎng)站正在建設(shè)中 html源碼快手作品免費(fèi)推廣軟件
  • 海安網(wǎng)站開發(fā)seo教程排名第一
  • 大公司網(wǎng)站色彩設(shè)計(jì)萬網(wǎng)域名查詢官網(wǎng)
  • 做有獎(jiǎng)競猜網(wǎng)站違法嗎網(wǎng)站搭建需要多少錢?
  • 做網(wǎng)站php與python做推廣怎么賺錢
  • 做ppt的軟件模板下載網(wǎng)站有哪些網(wǎng)站建站公司
  • 商丘銷售網(wǎng)站制作自媒體
  • 百度免費(fèi)網(wǎng)站怎樣建設(shè)網(wǎng)絡(luò)推廣的重要性與好處
  • 上海網(wǎng)站建設(shè)公司排名外包接單平臺
  • 葫蘆島建設(shè)信息網(wǎng)站企業(yè)建站都有什么網(wǎng)站
  • 閑魚怎么做釣魚網(wǎng)站廣告資源發(fā)布平臺
  • 網(wǎng)站怎么解析到域名百度地圖網(wǎng)頁版進(jìn)入
  • 徐州專業(yè)網(wǎng)站制作公司網(wǎng)址注冊在哪里注冊
  • 百度搜索seo優(yōu)化技巧寧波seo外包推廣排名
  • 微信內(nèi)部劵網(wǎng)站怎么做長沙百度首頁優(yōu)化排名
  • 個(gè)人建設(shè)網(wǎng)站還要備案么公司網(wǎng)站建設(shè)需要多少錢
  • 推薦個(gè)做兼職的網(wǎng)站做網(wǎng)上推廣
  • 東莞網(wǎng)站建設(shè) 樂云seo小程序推廣方案
  • 東營機(jī)關(guān)建設(shè)網(wǎng)站抖音宣傳推廣方案
  • 教做縫紉的網(wǎng)站關(guān)鍵詞排名提升工具
  • 廣州網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣怎么網(wǎng)站推廣
  • 北京網(wǎng)站托管seo關(guān)鍵詞排名優(yōu)化軟件怎么選
  • 永州網(wǎng)站開發(fā)商品seo優(yōu)化是什么意思
  • 網(wǎng)站案例欣賞seo機(jī)構(gòu)
  • 同性男做性視頻網(wǎng)站seo小白入門教學(xué)
  • 醫(yī)院做網(wǎng)站定位上海seo網(wǎng)站策劃
  • 做平臺網(wǎng)站一般有php還是js脫發(fā)嚴(yán)重是什么原因引起的