国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

關于c++的引用變量與命名空間

2019-11-06 08:17:07
字體:
來源:轉載
供稿:網友

一、c++的引用變量

初學c++便接觸到了引用變量,定義類型為整型時:

int a;int &b=a;表示將b定義為一個引用變量,引用了a的數值,同時b與a的地址值相同,如果改變b的數值,a,b的數值也會改變,但是作為引用變量b的地址值不會改變,同時引用變量與指針有著相似性,但是卻是不同的,有著不同的特性。以下程序作為對比分析:

#include<iostream>using namespace std;int main(){	int a,b;	int &c=a;	int *q;	q=&a;	a=1;	b=2;	cout<<c<<endl;	cout<<*q<<endl;	cout<<&c<<endl;	cout<<q<<endl;	q=&b;	c=b;//將b=2賦 給c   	cout<<a<<endl;//a變為2 	cout<<c<<endl;	cout<<*q<<endl;	cout<<&c<<endl;//引用變量的地址不會改變,仍為a的原地址 	cout<<q<<endl;	return 0;	} 

運行結果如圖。由此可見c,*q是一個具體的數值,而&c,q是地址值,當使q指向b后,q的地址變為b的地址,a的值不會改變,令c引用b后,a,c的值都發生變化,但c的地址卻依舊是a的地址。這便是引用變量的相關內容。

二 、關于命名空間

c++中考慮到可能會有重名的變量,函數等,設置了命名空間的概念,例如,在c++中當使用<iostream.h>時,相當于在c中調用庫函數,使用的是全局命名空間,也就是早期的c++實現;當使用<iostream>的時候,該頭文件沒有定義全局命名空間,必須使用namespace std;這樣才能正確使用cout。

這便是using namespace std的用處,std指的是標準庫相關的標識符,C++標準程序庫中的所有標識符都被定義于一個名為std的namespace中。

同時,namespace也可以由用戶自定義,以下代碼用來說明namespace的意義:

//DISPLAYNamespaceDemonstration#include <iostream>using namespace std ;namespace savitch1 {    void greeting();}namespace savitch2 {    void greeting();}void big_greeting();int main(){    {        using namespace savitch2 ;        //使用savictch2、std、全局三個命名空間        greeting();    }    {        using namespace savitch1 ;        //使用savitch1、std、全局三個命名空間        greeting();    }    big_greeting();    //使用了std和全局兩個命名空間         return 0 ;}namespace savitch1 {    void greeting()    {        cout<<"Hellofromnamespacesavitch1./n" ;    }}namespace savitch2 {    void greeting()    {        cout<<"Greetingsfromnamespacesavitch2./n" ;    }}void big_greeting(){    cout<<"ABigGlobalHello!/n" ;}同時也可改為如下用法:

//DISPLAYNamespaceDemonstration#include <iostream>using namespace std ;namespace savitch1 {    void greeting();}namespace savitch2 {    void greeting();}void big_greeting();int main(){    {                //使用savictch2、std、全局三個命名空間        savitch2::greeting();    }    {                //使用savitch1、std、全局三個命名空間        savitch1::greeting();    }    big_greeting();    //使用了std和全局兩個命名空間         return 0 ;}namespace savitch1 {    void greeting()    {        cout<<"Hellofromnamespacesavitch1./n" ;    }}namespace savitch2 {    void greeting()    {        cout<<"Greetingsfromnamespacesavitch2./n" ;    }}void big_greeting(){    cout<<"ABigGlobalHello!/n" ;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 寿宁县| 鸡西市| 东丽区| 博乐市| 博爱县| 保亭| 鲁山县| 仪陇县| 万山特区| 高唐县| 通榆县| 德江县| 东明县| 黑河市| 弋阳县| 营山县| 万宁市| 宜章县| 武鸣县| 绵竹市| 长沙市| 寿光市| 宁国市| 巩留县| 达州市| 吉水县| 敖汉旗| 井冈山市| 惠水县| 繁峙县| 汝州市| 长顺县| 金塔县| 甘德县| 海原县| 临西县| 泰安市| 贡山| 滨海县| 云安县| 安宁市|