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

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

網(wǎng)站設(shè)計(jì)任務(wù)書(shū)范文站長(zhǎng)工具seo綜合查詢(xún)?cè)L問(wèn)

網(wǎng)站設(shè)計(jì)任務(wù)書(shū)范文,站長(zhǎng)工具seo綜合查詢(xún)?cè)L問(wèn),百度競(jìng)價(jià)排名平臺(tái),建設(shè)保障房網(wǎng)站首頁(yè)1.命名空間 使用命名空間的目的是對(duì)標(biāo)識(shí)符的名稱(chēng)進(jìn)行本地化,以避免命名沖突或名字污染 定義命名空間,需要使用到namespace關(guān)鍵字,后面跟命名空間的名字,然后接一對(duì){}即可,{}中即為命名空間的成員 ①.普通的命名空間 n…

1.命名空間
使用命名空間的目的是對(duì)標(biāo)識(shí)符的名稱(chēng)進(jìn)行本地化,以避免命名沖突或名字污染
定義命名空間,需要使用到namespace關(guān)鍵字,后面跟命名空間的名字,然后接一對(duì){}即可,{}中即為命名空間的成員
①.普通的命名空間

namespace N1{//命名空間的內(nèi)容,既可以定義變量,又可以定義函數(shù)
int a;
int Add(int left,int right){
return left+right;
}
}

②.命名空間可以嵌套

namespace N1{//命名空間的內(nèi)容,既可以定義變量,又可以定義函數(shù)
int a;
int Add(int left,int right){
return left+right;
}
namespace N3{
int c;
int d;
int sub(int left,int right){
return left-right;
}

}
③.同一個(gè)工程中允許存在多個(gè)相同名稱(chēng)的命名空間,編譯器最后會(huì)合成同一個(gè)命名空間

命名空間的使用
①.加命名空間名稱(chēng)和域作用限定符

int main(){
printf("%d",N::a);
return 0;
}

②.使用using將命名空間中成員引入

using N::b
int main(){
pritnf("%d",N::b);
return 0;
}

③.使用using namespace 命名空間名稱(chēng)引入
using namespace N;

using namespace N;//全部展開(kāi),全部授權(quán)
using N::add;//部分展開(kāi),部分授權(quán)

using namespace std;
std是c++標(biāo)準(zhǔn)庫(kù)的命名空間
2.c++輸入/輸出
<<流插入運(yùn)算符

流提取運(yùn)算符

cout<<"hello world"<<endl;

endl為換行符

cout<<"hello world"<<"\n";

兩者效果相同
使用cout標(biāo)準(zhǔn)輸出(控制臺(tái))和cin標(biāo)準(zhǔn)輸入(鍵盤(pán))時(shí),必須包含頭文件以及std標(biāo)準(zhǔn)命名空間
使用c++輸入輸出更加方便,不需增加數(shù)據(jù)控制格式,比如整形"%d” 字符"%c"

注意cin的特點(diǎn),與c語(yǔ)言中g(shù)ets有些類(lèi)似,gets是遇到換行符停止,而cin是遇到空格,tab或者換行符作為分隔符的,

char arr[20]={};
cin>>arr;

輸入hello world 但由于中間存在空格,故arr這個(gè)數(shù)組中只有hello,沒(méi)有world

3.缺省參數(shù)
缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)默認(rèn)值,在調(diào)用該函數(shù)時(shí),如果沒(méi)有指定實(shí)參則采用該默認(rèn)值,否則使用指定的實(shí)參。
void func(int a=10){
cout<<a<<endl;
}
int main(){
func();//沒(méi)有傳參時(shí),使用參數(shù)的默認(rèn)值
func(10);//傳參時(shí),使用指定的實(shí)參
}
分類(lèi)
全缺省參數(shù)
void func(int a=10;int b=20;int c=30){}
半缺省參數(shù)
void func(int a,int b=20;int c=30){}
注意①.半缺省參數(shù)必須從右往左依次來(lái)給,不能間隔著給
②.缺省參數(shù)不能在函數(shù)的聲明和定義中同時(shí)出現(xiàn)
因?yàn)槿绻暶髋c定義位置同時(shí)出現(xiàn),恰巧兩個(gè)位置提供的值不同,那編譯器就無(wú)法確定到底該用哪個(gè)缺省值
聲明不給定義給
③.缺省值必須是常量或者全局變量
//正確示例

int x = 3;//全局變量
void func(int a, int b = 2, int c = x)
{cout << a << endl;cout << b << endl;cout << c << endl;
}

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

#include <iostream>
using namespace std;int Add(int x, int y)
{return x + y;
}double Add(double x, double y)
{return x + y;
}
int main()
{cout << Add(0,1) << endl;//打印0+1的結(jié)果cout << Add(1.1,2.2) << endl;//打印1.1+2.2的結(jié)果return 0;
}

注意:若僅僅只有返回值不同,其他都相同,則不構(gòu)成函數(shù)重載。

c語(yǔ)言與c++類(lèi)似,都要進(jìn)行編譯和鏈接兩個(gè)過(guò)程
編譯后鏈接前,a.o的目標(biāo)文件中沒(méi)有Add的函數(shù)地址,因?yàn)锳dd是在b.cpp中定義的,所以Add的地址實(shí)在b.o中
鏈接器看到a.o調(diào)用Add,但沒(méi)有Add的地址,就會(huì)到b.o的符號(hào)表(符號(hào)表就是函數(shù)名,變量跟地址的映射)中去找Add的地址,然后鏈接到一起。面對(duì)多個(gè)Add函數(shù),每個(gè)編譯器有自己的修飾規(guī)則,在gcc下的修飾規(guī)則是:【_Z+函數(shù)長(zhǎng)度+函數(shù)名+類(lèi)型首字母】。
之所以c語(yǔ)言無(wú)法支持重載,是因?yàn)镃編譯器和C++編譯器對(duì)函數(shù)名的修飾不同

所以,返回值的不會(huì)構(gòu)成函數(shù)重載,因?yàn)樾揎椧?guī)則并不會(huì)受返回值的影響。
如果函數(shù)名修飾規(guī)則帶入返回值,返回值能否構(gòu)成重載?

不能,因?yàn)椴恢酪{(diào)用誰(shuí)
5.引用
引用不是新定義一個(gè)變量,而是給已存在變量取了一個(gè)別名,編譯器不會(huì)為引用變量開(kāi)辟內(nèi)存空間,它和它
引用的變量共用同一塊內(nèi)存空間。
類(lèi)型& 引用變量名(對(duì)象名) = 引用實(shí)體;
int a=10;
int&b=a; //相當(dāng)于給a取了一個(gè)別名,給b引用了a,同一個(gè)變量取了個(gè)名字
b=3;//改變b也就相當(dāng)于改變a了
引用類(lèi)型必須和引用實(shí)體是同種類(lèi)型的
引用的特性
①.引用在定義時(shí)必須初始化

//正確示例
int a = 10;
int& b = a;//引用在定義時(shí)必須初始化
//錯(cuò)誤示例
int a = 10;
int &b;//定義時(shí)未初始化
b = a;

②.一個(gè)變量可以有多個(gè)引用

int a = 10;
int& b = a;
int& c = a;
int& d = a;

③.引用一旦引用了一個(gè)實(shí)體,就不能再引用其他實(shí)體(c++的引用不能改變指向)

int a = 10;
int& b = a;
int c = 20;
b = c;//錯(cuò)誤,b已經(jīng)引用了a,就不能在引用c
實(shí)際效果變?yōu)?#xff0c;b的值變?yōu)?span id="vxwlu0yf4"    class="token number">20,而因?yàn)閍與b相同,故a的值也變成了20

常引用
在引用的過(guò)程中,權(quán)限可以平移,可以縮小,但不能放大

const int a=10;
int&b=a;

會(huì)出現(xiàn)錯(cuò)誤,相當(dāng)于權(quán)限的放大,因?yàn)樵谶@里a為常量,如果用int&b=a;那么,b可以修改,但a不可以修改

const int&ra=a;

相當(dāng)于權(quán)限的平移,不會(huì)出錯(cuò)

int&b=10;

會(huì)出現(xiàn)錯(cuò)誤,b為常量,需要改為

const int&b=10;
int i=0;
double&d=i;

會(huì)出現(xiàn)錯(cuò)誤,因?yàn)榘l(fā)生類(lèi)型轉(zhuǎn)換時(shí)會(huì)產(chǎn)生一個(gè)double類(lèi)型臨時(shí)變量,臨時(shí)變量具有常性
(int到double存在隱式類(lèi)型的提升,而在提升的過(guò)程中系統(tǒng)會(huì)創(chuàng)建一個(gè)常量區(qū)來(lái)存放a類(lèi)型提升后的結(jié)果)
需要改為

int i=0;
const double&d=i;
int func(){
int a=0;
return a;
}
int&ret=func();

會(huì)出現(xiàn)問(wèn)題,因?yàn)閒unc的返回值是a的一份臨時(shí)拷貝,臨時(shí)變量具有常性
需改成

const int&ret=func();

引用的使用場(chǎng)景
①.做參數(shù)

void swap(int&left,int&right){
int temp=left;
left=right;
right=temp;
}

②.做返回值
當(dāng)然引用也能做返回值,但是要特別注意,我們返回的數(shù)據(jù)不能是函數(shù)內(nèi)部創(chuàng)建的普通局部變量,因?yàn)樵诤瘮?shù)內(nèi)部定義的普通的局部變量會(huì)隨著函數(shù)調(diào)用的結(jié)束而被銷(xiāo)毀。我們返回的數(shù)據(jù)必須是被static修飾或者是動(dòng)態(tài)開(kāi)辟的或者是全局變量等不會(huì)隨著函數(shù)調(diào)用的結(jié)束而被銷(xiāo)毀的數(shù)據(jù)。

int& count(){int n=0;n++;return n;
} 
int main(){int ret=count();return 0;
}

count函數(shù)返回n的別名,但是n已經(jīng)銷(xiāo)毀,如果棧幀沒(méi)有清楚,那么結(jié)果為1,否則結(jié)果為隨機(jī)值

#include<iostream>
using namespace std;
int&Add(int a,int b){int c=a+b;return c;
}
int main(){int&ans=Add(1,2);Add(3,4);cout<<ans<<endl;
}

但如果再加上一句cout<<ans<<endl;打印出的結(jié)果將變?yōu)殡S機(jī)值
因?yàn)樵诘谝淮握{(diào)用cout<<ans<<endl時(shí),函數(shù)傳參建立棧幀,調(diào)用完后被覆蓋,第二次調(diào)用時(shí)已經(jīng)被覆蓋,為隨機(jī)值

#include<iostream>
using namespace std;
int& Add(int a, int b)
{static int c = a + b;return c;
}int main()
{int& ans = Add(1,2);Add(3, 4);cout << ans << endl;
}

為什么會(huì)出現(xiàn)隨機(jī)值,因?yàn)槟阍诤瘮?shù)里定義的變量是臨時(shí)變量,出了函數(shù)函數(shù)是會(huì)銷(xiāo)毀的,這時(shí)它就隨機(jī)指向內(nèi)存中的一塊空間了。所以在引用做函數(shù)返回值時(shí)最好還是給在函數(shù)中定義的變量加上static。加上static后,結(jié)果將變?yōu)?。
因?yàn)榈诙握{(diào)用Add函數(shù)時(shí),static int c=a+b;并不會(huì)執(zhí)行,而是直接return c;
但如果將該函數(shù)修改為

int& Add(int a, int b)
{static int c ;c=a+b;return c;
}

總結(jié):
傳引用傳參(任何時(shí)候都可以)
①.提高效率
②.輸出型參數(shù)(形參的修改影響實(shí)參)
傳引用返回(出了函數(shù)作用域?qū)ο筮€在才可以用)
①.提高效率
②.

順序表查找和修改可以用一個(gè)函數(shù)來(lái)解決

int& SLAT(struct seqlist&ps,int i){
return ps.a[i];
}

想要修改SLAT(s,0)=1;

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

相關(guān)文章:

  • 精通網(wǎng)站建設(shè) 全能建站密碼pdf理發(fā)美發(fā)培訓(xùn)學(xué)校
  • 公司網(wǎng)站制作推廣公司
  • 電子商務(wù)網(wǎng)站有哪幾種搜索引擎營(yíng)銷(xiāo)的常見(jiàn)方式
  • 網(wǎng)站代理游戲合川網(wǎng)站建設(shè)
  • 蘇州專(zhuān)業(yè)高端網(wǎng)站建設(shè)公司專(zhuān)業(yè)制作網(wǎng)站的公司哪家好
  • 泰州網(wǎng)站建設(shè)服務(wù)熱線(xiàn)全網(wǎng)推廣軟件
  • 免費(fèi)推廣網(wǎng)站2023mmm網(wǎng)絡(luò)營(yíng)銷(xiāo)項(xiàng)目
  • 桐鄉(xiāng)住房和城鄉(xiāng)規(guī)劃建設(shè)局網(wǎng)站如何做網(wǎng)絡(luò)銷(xiāo)售產(chǎn)品
  • 上海網(wǎng)站設(shè)計(jì)工具網(wǎng)絡(luò)推廣運(yùn)營(yíng)團(tuán)隊(duì)
  • 建設(shè)廳特種作業(yè)證件查詢(xún)官網(wǎng)網(wǎng)站優(yōu)化推廣公司
  • 重慶品牌網(wǎng)站建設(shè)優(yōu)化網(wǎng)站排名方法
  • 網(wǎng)站設(shè)計(jì)導(dǎo)航欄高度佛山市人民政府門(mén)戶(hù)網(wǎng)站
  • 網(wǎng)站建設(shè)詢(xún)價(jià)文件無(wú)錫營(yíng)銷(xiāo)型網(wǎng)站制作
  • 海爾集團(tuán)電商網(wǎng)站建設(shè)百度網(wǎng)頁(yè)版進(jìn)入
  • 怎樣在國(guó)外網(wǎng)站做推廣搜索關(guān)鍵詞排名一般按照什么收費(fèi)
  • 做網(wǎng)站做軟件怎么賺錢(qián)嗎搜索量最大的關(guān)鍵詞
  • 咸秧草做哪些網(wǎng)站優(yōu)化大師免安裝版
  • 鄭州做網(wǎng)站推廣外包產(chǎn)品推廣方式
  • 鞍山網(wǎng)站制作公司優(yōu)化綠松石什么意思
  • 泉州建設(shè)網(wǎng)站開(kāi)發(fā)快速排名優(yōu)化
  • 湖南做網(wǎng)站磐石網(wǎng)絡(luò)案例cba最新排名
  • 淘寶的網(wǎng)站建設(shè)seo分析報(bào)告怎么寫(xiě)
  • 網(wǎng)站如何提高權(quán)重做百度推廣怎么做才能有電話(huà)
  • 響應(yīng)式網(wǎng)站建設(shè)效果迅雷下載磁力天堂
  • 萬(wàn)網(wǎng)個(gè)人網(wǎng)站備案查詢(xún)東莞今天的最新通知
  • 有關(guān)做聚合物電池公司的網(wǎng)站網(wǎng)站優(yōu)化外包推薦
  • 如何再?lài)?guó)外網(wǎng)站做折扣什么是seo?
  • 中關(guān)村在線(xiàn)官方網(wǎng)站電腦首頁(yè)關(guān)鍵詞排名
  • 愛(ài)站網(wǎng)排行榜武漢抖音seo搜索
  • 網(wǎng)站設(shè)計(jì)app微信推廣方式有哪些