999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C++語言中共享機制的實現

2019-05-24 14:11:40趙娟
電腦知識與技術 2019年4期
關鍵詞:安全性

趙娟

摘要:本文主要介紹C++語言中通過全局變量、局部變量、類的數據成員、類的靜態數據成員、友元來實現了函數間、對象間的共享,在實現共享的同時,又保護了數據,使數據的安全性得到了提高。

關鍵詞:C++;數據;函數;安全性

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2019)04-0212-02

Abstract: This paper introduces that it shares data between function and object, through global variables, local variables, data members of the class, static data members of the class, a friend to achieve inter-function, in C ++ language. At the same time, it protects the data, so that data security has been improved.

Keywords: C ++; data; function; security

C++語言是一種面向對象的程序設計語言,它把數據和對數據的操作封裝到一起形成類,通過類的繼承和多態來實現代碼的重用。其中封裝的特性使得C++語言在很大程度上提高了數據的安全性,這也是C++區別與C語言的一大特點。在使用C++語言時,如何達到數據的共享,也是一大難點,并且共享的同時還要考慮如何提高數據的安全性,針對此問題,C++語言提供了5種共享機制,用來處理函數間、對象間的共享問題。

1 C++語言的共享機制

1.1 函數間的共享機制

(1) 使用全局變量實現共享

所謂的全局變量就是在函數外部定義的變量,它不屬于哪一個函數,其作用域范圍從聲明點開始到整個文件結束,在此期間,只要是在全局變量聲明之后定義的函數都可以使用該全局變量。所以只要將要共享的數據存放在全局變量里,需要共享數據的函數在全局變量之后定義,函數間使用同一個變量,可實現共享。

//f函數g函數通過全局變量實現數據global的共享

#include

using namespace std;

int global;//全局變量

void f()

{ global=5;}

void g()

{ cout<

int main()

{ f();

g();

return 0;}

(2) 使用局部變量實現共享

局部變量顧名思義其作用域范圍僅限于函數內部,如何實現函數間的數據共享呢?那就是通過參數傳遞,因為實參和形參都是局部變量,都有各自的作用域,我們將所要共享的數據設置為實參,函數間相互調用的時候實參傳形參,就實現了主調函數和被調函數之間的數據共享,其共享數據為實參的值。

//f函數g函數通過局部變量的參數傳遞實現數據global的共享

#include

using namespace std;

void g(int part)

{ cout<

void f()

{ int global=5;//要共享的數據

g(global);}

int main()

{ f();

return 0; }

(3) 使用類的數據成員實現共享

此種共享方式是利用類的封裝,將函數和所要共享的數據封裝到一個類里,這樣作為類的成員,函數可以訪問數據,實現了共享。同時由于封裝使得被共享的數據成為類的私有數據成員,類外無法直接訪問,所以數據的安全性得到了提高。

//f函數g函數通過類的封裝實現數據global的共享

#include

using namespace std;

class Application

{ public:

void f();

void g();

private:

int global;};

void Application::f()

{ global=5;}

void Application::g()

{cout<

int main()

{ Application MyApp;

MyApp.f();

MyApp.g();

return 0; }

(4) 使用友元函數實現共享

使用友元函數實現共享的前提必須是:類外的函數要共享類內的保護或者私有數據。類的封裝使得類內的私有或保護成員被隱藏起來了,類外無法直接訪問。類外的函數想要共享這些隱藏起來的成員,就必須破壞類的封裝,而友元機制剛好提供了此項功能,只需在類內將要共享數據的函數聲明為友元函數,類外函數就可以通過對象去訪問類內的私有或保護成員,對友元函數而言實現了共享,對其他類外的函數又實現了隱藏,保護了數據的安全性。

//set函數和show函數共享類Point的數據X,Y

#include

using namespace std;

class Point

{ public:

Point(int xx=0, int yy=0) {X=xx;Y=yy;}

friend void set(Point &a);

friend void show(Point &a);

private:

int X,Y;};

void set( Point& a)

{a.X=1; a.Y=2;}

void show( Point& a)

{cout<

int main()

{ Point p1(3,5);

set(p1);//set函數給對象p1的X,Y賦值

show(p1);//show函數輸出對象p1的X,Y值

return 0;}

1.2 對象間的共享機制

(1) 對象間共享數據

C++語言中,同一個類的對象間想要實現數據的共享,前提是這個共享的數據必須是本類公共的數據,不屬于任何一個對象;靜態數據成員剛好滿足這一條件,本類所有對象維護同一個拷貝,也就是說對于類而言,靜態數據成員是唯一的,也是公共的。對象間使用靜態數據成員時,就實現了共享,如果想要共享的數據的安全性更高,還可以將靜態數據成員設置為常類型,也就是類似常量的變量,只能初始化,不能被更新。

//對象A和對象B共享countP數據

#include

using namespace std;

class Point

{public:

Point(){countP++;}

Point(Point &p){countP++;}

static const int countP;};

int Point::countP=0;

int main()

{ cout<

Point A;

cout<

Point B(A);

cout<

(2) 對象間共享函數

對象間共享函數的原理與共享數據的原理相似,只要函數是本類唯一的,公共的,就可以實現共享,所以將要共享的函數設置為靜態的成員函數。

//對象A和對象B共享GetC()函數

#include

using namespace std;

class Point

{public:

Point(){countP++;}

Point(Point &p){ countP++;}

static void GetC()

{cout<<" Object count="<

private:

static int countP; };

int Point::countP=0;

int main()

{ Point::GetC(); //輸出初始對象個數

Point A;

A.GetC(); //Point::GetC();輸出對象個數

Point B(A);

B.GetC(); } //Point::GetC();輸出對象個數

2 結論

本文介紹了C++語言中函數間的四種方式和對象間共享的兩種方式,不論是函數間共享還是對象間共享,都要考慮兩點:一是如何實現共享;二是在能共享的前提下如何讓被共享的數據的安全性更高。在以上所有的方式中,將函數和數據封裝到類里,并把數據設置為類的私有常類型的數據成員,這樣函數間共享數據的安全性更高。而對象間共享時,只需要把被共享的數據設置為私有靜態常類型的成員,這樣對象間共享數據的時候,其安全性也得到了更大的保障。

參考文獻:

[1] 鄭莉等編著. C++語言程序設計[M]. 北京:清華大學出版社,第四版,2014.

[2] 馬榮貴. C++中共享數據的保護方法[J]. 長安大學學報,2005.

[3] 閔小玲. C++中數據共享的實現機制[J]. 黃石理工學院學報,2005.

[4] 聶豐英. 淺談靜態成員在C++中的應用[J]. 硅谷,2008.

[5] 廖鋒,胡麗平,楊巧合. C++語言中靜態數據成員和靜態成員函數的研究[J]. 電腦知識與技術,2006.

【通聯編輯:梁書】

猜你喜歡
安全性
兩款輸液泵的輸血安全性評估
新染料可提高電動汽車安全性
既有建筑工程質量安全性的思考
某既有隔震建筑檢測與安全性鑒定
基于安全性需求的高升力控制系統架構設計
加強廣播電視信息安全性的思考
科技傳播(2019年22期)2020-01-14 03:05:32
網約車安全性提高研究
活力(2019年17期)2019-11-26 00:42:18
注意藥酒服用的安全性
基層中醫藥(2018年6期)2018-08-29 01:20:20
田間施用滅幼脲在桃中的殘留安全性評估
ApplePay橫空出世 安全性遭受質疑 拿什么保護你,我的蘋果支付?
主站蜘蛛池模板: 亚洲高清资源| 久久99精品久久久久纯品| 国产亚洲精品资源在线26u| 国产精品综合久久久| 免费观看男人免费桶女人视频| 国产香蕉在线| 亚洲成人动漫在线| 国产乱人伦精品一区二区| 国产97色在线| 国产日韩欧美精品区性色| 久久综合色视频| 亚洲欧美日韩视频一区| 婷婷伊人五月| 乱人伦99久久| 91精品啪在线观看国产91九色| 国产麻豆精品手机在线观看| 国产丝袜第一页| 内射人妻无码色AV天堂| 另类欧美日韩| 性欧美久久| 久久99国产乱子伦精品免| 亚洲成人在线免费观看| 成人午夜免费观看| 一级毛片免费播放视频| 香蕉网久久| 亚洲av无码成人专区| 亚洲区欧美区| 国产肉感大码AV无码| 久久国产乱子| 四虎国产永久在线观看| 女人av社区男人的天堂| 国产精品免费电影| 亚洲激情99| 国产亚洲视频播放9000| 蜜桃视频一区二区| 色综合成人| 在线看免费无码av天堂的| 成人国产小视频| 亚洲乱伦视频| 亚洲色图综合在线| 午夜啪啪福利| 亚洲天堂视频在线观看| 伊伊人成亚洲综合人网7777| 夜夜拍夜夜爽| 国产91视频观看| 毛片免费观看视频| 最新国产你懂的在线网址| 成人一级免费视频| 亚洲人成影院午夜网站| 小13箩利洗澡无码视频免费网站| 婷婷伊人久久| 亚洲aaa视频| 日韩在线播放中文字幕| 丰满人妻久久中文字幕| 综合社区亚洲熟妇p| 欧美日韩在线第一页| 午夜精品福利影院| 日韩欧美在线观看| 国产亚洲一区二区三区在线| 中文字幕调教一区二区视频| 91成人在线免费观看| 狠狠色丁婷婷综合久久| 国产精品手机视频一区二区| 欧美视频免费一区二区三区| 黄色网址手机国内免费在线观看| 一级毛片免费观看不卡视频| 黄色网址免费在线| 3344在线观看无码| 99久久精品久久久久久婷婷| 色综合中文| 毛片免费在线视频| 亚洲无码精彩视频在线观看| 国产高颜值露脸在线观看| 2020精品极品国产色在线观看 | 国产亚洲精品资源在线26u| 久热re国产手机在线观看| 亚洲 成人国产| 久久婷婷国产综合尤物精品| 久久综合干| 毛片在线播放a| 国产91精品调教在线播放| 久久亚洲AⅤ无码精品午夜麻豆|