最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++程序開發(fā)中實現(xiàn)信息隱藏的三種類型

 更新時間:2016年02月21日 13:36:59   作者:smstong  
這篇文章主要介紹了C/C++程序開發(fā)中實現(xiàn)信息隱藏的三種類型的相關(guān)資料,需要的朋友可以參考下

無論是模塊化設(shè)計,還是面向?qū)ο笤O(shè)計,還是分層設(shè)計,實現(xiàn)子系統(tǒng)內(nèi)部信息的對外隱藏都是最關(guān)鍵的內(nèi)在要求。以本人淺顯的經(jīng)驗,把信息隱藏按照程度的不同分成(1)不可見不可用(2)可見不可用(3)可見可用。

1 不可見不可用

就是說模塊內(nèi)部的變量、結(jié)構(gòu)體、類定義對外部而已完全隱藏,外部對此一無所知。常用的實現(xiàn)方法就是利用不透明指針,請參見我的博文C語言開發(fā)函數(shù)庫時利用不透明指針對外隱藏結(jié)構(gòu)體細(xì)節(jié)。

這種方法同樣適用于C++語言,一種可能的實現(xiàn)方式為面向接口編程。

頭文件 IMyClass.h

class IMyClass
{
public:
virtual ~IMyClass();
public:
virtual void public_function1();
virtual void public_function2();
};
IMyClass* CreateMyClassObject();

實現(xiàn)文件 MyClass.cpp

#include "IMyClass.h"
class MyClass : IMyClass.h
{
private:
int x;
int y;
int z;
public:
virtual void public_function1();
virtual void public_function2();
};
IMyClass* CreateMyClassObject()
{
return new MyClass();
}

這種實現(xiàn)方法在源碼層次和庫層次上都能適用。

理論上說,完全實現(xiàn)不可見是最完美的設(shè)計。然而這對于程序設(shè)計要求非常高,而且會帶來更多的代碼量和設(shè)計邏輯層次以及一些限制(如無法實現(xiàn)對已有類型的繼承)。

所以,很多C++庫的設(shè)計都采用了下面這種可見不可用的方式,如MFC。

2 可見不可用

這種方法指的是專門針對C++而言的,指的是C++類中的非公開類型成員。例如在頭文件 myclass.h中:

class MyClass
{
private:
int x;
int y;
int z;
protected:
float f;
public:
int M;
void member_method1();
};

對于調(diào)用方來說,包含次頭文件后,雖然能夠看到x,y,z等成員變量,但是卻無法使用它們。只要客戶端需要使用 new 來生成實例或者繼承類,就必須知道類的完整定義。

對C語言而言,不存在這種情況,因為結(jié)構(gòu)體里的任何變量都是公開的。

3 可見可用

也就是毫無隱藏而言了,程序設(shè)計中絕對要避免。

以上所述是針對C/C++程序開發(fā)中實現(xiàn)信息隱藏的三種類型,希望對大家以上幫助!

相關(guān)文章

  • c++訪問修飾符與繼承關(guān)系詳解

    c++訪問修飾符與繼承關(guān)系詳解

    C++提供了三個修飾符來限定類成員的被訪問權(quán)限,分別是public、protected、private,通過限定訪問權(quán)限,可以達(dá)到程序編寫者想要解決的安全問題和權(quán)限問題,本文給大家介紹c++訪問修飾符與繼承關(guān)系,感興趣的朋友一起看看吧
    2023-10-10
  • C語言+shell實現(xiàn)linux網(wǎng)卡狀態(tài)檢測

    C語言+shell實現(xiàn)linux網(wǎng)卡狀態(tài)檢測

    這篇文章主要為大家詳細(xì)介紹了C語言+shell實現(xiàn)linux網(wǎng)卡狀態(tài)檢測,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 詳解C++編程中的虛函數(shù)

    詳解C++編程中的虛函數(shù)

    這篇文章主要介紹了詳解C++編程中的虛函數(shù),包括在什么情況下應(yīng)當(dāng)聲明虛函數(shù)的相關(guān)講解,需要的朋友可以參考下
    2015-09-09
  • C語言各種操作符透徹理解下篇

    C語言各種操作符透徹理解下篇

    C?語言提供了豐富的操作符,除了上篇中的算術(shù)操作符,移位操作符,位操作符,賦值操作符外,還有單目操作符、關(guān)系操作符、邏輯操作符、條件操作符等等,讓我們通讀本篇來詳細(xì)了解吧
    2022-02-02
  • Ubuntu20.04安裝使用jsoncpp、json-c庫的方法實例

    Ubuntu20.04安裝使用jsoncpp、json-c庫的方法實例

    這篇文章主要給大家介紹了關(guān)于Ubuntu20.04安裝使用jsoncpp、json-c庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作就有一定的參考借鑒價值,需要的朋友可以參考下
    2024-04-04
  • C語言進(jìn)階數(shù)據(jù)的存儲機(jī)制完整版

    C語言進(jìn)階數(shù)據(jù)的存儲機(jī)制完整版

    這篇文章主要為大家完整的介紹了C語言進(jìn)階數(shù)據(jù)的存儲機(jī)制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-02-02
  • 基于C++實現(xiàn)五子棋AI算法思想

    基于C++實現(xiàn)五子棋AI算法思想

    這篇文章主要為大家詳細(xì)介紹了基于C++實現(xiàn)五子棋AI算法思想,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 一文帶你搞懂C++中的流量控制

    一文帶你搞懂C++中的流量控制

    限流可以認(rèn)為服務(wù)降級的一種,限流就是限制系統(tǒng)的輸入和輸出流量已達(dá)到保護(hù)系統(tǒng)的目的,這篇文章小編就來帶大家深入了解一下如何利用C++實現(xiàn)流量控制吧
    2023-10-10
  • C++之CNoTrackObject類和new delete操作符的重載實例

    C++之CNoTrackObject類和new delete操作符的重載實例

    這篇文章主要介紹了C++之CNoTrackObject類和new delete操作符的重載實例,是C++程序設(shè)計中比較重要的概念,需要的朋友可以參考下
    2014-10-10
  • C++ 中的this指針詳解及實例

    C++ 中的this指針詳解及實例

    這篇文章主要介紹了C++ 中的this指針詳解及實例的相關(guān)資料,this指針是類的一個自動生成、自動隱蔽的私有成員,它存在于類的非靜態(tài)成員中,指向被調(diào)用函數(shù)所在的對象。需要的朋友可以參考下
    2017-07-07

最新評論

西畴县| 宝山区| 漠河县| 喜德县| 宣武区| 洛浦县| 深水埗区| 浦县| 隆昌县| 依兰县| 永昌县| 景宁| 五台县| 乐安县| 安图县| 元氏县| 招远市| 阿克苏市| 宁乡县| 天镇县| 霍林郭勒市| 黎平县| 天津市| 涟水县| 舞阳县| 淅川县| 永新县| 安阳市| 社旗县| 莱阳市| 顺平县| 舒兰市| 南乐县| 乌兰察布市| 神农架林区| 阿瓦提县| 九寨沟县| 渝中区| 元阳县| 德安县| 梁河县|