1. 程式人生 > >c++初級 之 c++的封裝性

c++初級 之 c++的封裝性

c++作為面向物件的程式語言,有三大特性:封裝性、繼承性、多型性。

此篇說明封裝性:什麼是封裝?自己的理解就是將很多同類事物(比如狗類)的共同特性(名字、顏色、跑、叫、吃)封裝起來,然後遇到一個該類事物(一隻具體的狗)時,就可以直接使用從該類事物封裝好的這些特性。用類和物件來講,就是:類封裝了所有同類物件的一些共同特性(每個物件都有的屬性(資料成員)和方法(成員函式));例項化一個類的物件後,該物件就會有這些共同特性。

這樣的好處有:1.更安全,因為封裝的這些特性不再是直接暴露在全域性或main裡面了,有public、protected、private之分,訪問需要許可權。2.更方便,例項化一個物件後直接呼叫它的公有特性就可以完成很多事情,比如定義一個狗類,有公有方法run(),那例項化兩個狗dog1,dog2,讓它們跑,就直接呼叫dog1.run(),dog2.run()就行了,不用重複寫具體怎麼跑的程式碼;也許普通的全域性函式也可以實現,但是要在全域性函式中使用dog的其它特性還是很麻煩複雜,而且函式的具體的操作是暴露在全域性的,很不安全。3.真正是面向物件的思想,是從一個物件出發,根據物件特性進行操作。大大提高了程式碼的複用性。

類與結構體區別:1.結構體內一般不會有函式2.結構體裡沒有public、protected、private這些區別,不安全,沒有實現真正有效的封裝。3.還是面向過程4.結構體也不存在繼承、多型的性質



相關推薦

c++初級 c++的封裝

c++作為面向物件的程式語言,有三大特性:封裝性、繼承性、多型性。 此篇說明封裝性:什麼是封裝?自己的理解就是將很多同類事物(比如狗類)的共同特性(名字、顏色、跑、叫、吃)封裝起來,然後遇到一個該類事物(一隻具體的狗)時,就可以直接使用從該類事物封裝好的這些特性。用類和物件

嵌入式C語言C語言的高階表達與指標的高階應用

指標陣列與陣列指標、函式指標:                   指標陣列  int *p[5]   相當於int *(p[5])  (陣

C/C++知識點C/C++經典面試題一

本文主要向大家介紹了 C/C++知識點之C/C++經典面試題一,通過具體的內容向大家展示,希望對大家學習C/C++知識點有所幫助。 1.變數的宣告和定義有什麼區別? 常量:在程式執行過程中,不會發生改變的量,不能被改變的量 變數:在程式執行過程中,可以被改變的量 定義變數的方式:資料型別

NodeJS C++ AddonsC++類例項包裝與非同步操作

本文是對NodeJS C++ Addons原生寫法的進一步探索,介紹了利用原生的Node和V8提供的API實現類包裝和非同步呼叫的具體做法。在閱讀本文之前,如果對NodeJS C++ Addons的基礎不熟悉的話,建議先閱讀上一篇部落格【NodeJS C++ A

程序員---C語言細節12(指針和數組細節,"//"的可移植說明)

[1] watermark popu i++ gravity 移植 char dsm 指針 主要內容:指針和數組細節,"//"的可移植性說明 #include <stdio.h> int main(int argc, char

【轉載】C#掃盲:==/Equals /ReferenceEquals 異同的總結,相等你真的知道嗎?

lin 轉載 對待 rip 代數 .com 靜態方法 而是 tro 1.前言 == Equals ReferenceEquals 三個相等性測試,是.NET提供給程序員使用的三個方法,他們之間有什麽聯系和區別,你真的仔細研究過?雖然之前也多多少少知道一點,但是有時候又難免混

c++多型(動態繫結)

多型性 指相同物件收到不同訊息或不同物件收到相同訊息時產生不同的實現動作。C++支援兩種多型性:編譯時多型性,執行時多型性。   a、編譯時多型性:通過過載函式實現    b、執行時多型性:通過虛擬函式實現  多型性可以簡單地概括為“一

C++設計模式-面向物件程式設計要點以及封裝特點

目錄   1.面向物件程式設計要點 2.單使用封裝性的例子   1.面向物件程式設計要點 面向物件程式設計要注意什麼: 注意3點: 1.可維護性; 2.可擴充套件性; 3.可複用性; 4.靈活性好; 注意:要儘可能的避免重複; 要求業務邏輯與介面分

C#】 封裝、繼承與多型

我們知道封裝、繼承和多型是面向物件方法設計中的三大基本特性,下面將具體講解這三個特性的具體表現及意義。 #一、封裝 ##1、說明   從字面意思上看,封裝就是打包的意思,將什麼包裝起來,專業一點就是資訊的隱藏,將物件的屬性和方法打包成一個相對獨立的單位,儘可能隱蔽物件的內部細

C++中friend對類封裝的強大破壞性

class ClxSingletonMEC{public:    friend ClxSingletonMEC& InstanceMEC();private:    ClxSingletonMEC() {};    ClxSingletonMEC(const Cl

淺談C++中的類與封裝

類 我們知道,在C語言中struct將所有成員都預設為public許可權,這很不安全。因此C++引進了功能與struct相同但更安全的資料型別——類。說明:       1.類宣告中的訪問限定符沒有先後次序,通常將private放在後面,將public放在前面,方便了解類

Python3 與 C# 面向物件封裝

關於__name__在模組呼叫的時候會詳細說,你可以先這樣理解:如果直接執行py檔案就執行,別人呼叫那麼你的main就不執行了 標準寫法: # 1.匯入的模組 # 2.class的定義 # 3.其他方法定義 def main(): pass if __name__ ==

程式設計基石與實踐系列失落的C語言結構體封裝藝術

誰該閱讀這篇文章本文是關於削減C語言程式記憶體佔用空間的一項技術——為了減小記憶體大小而手工重新封裝C結構體宣告。你需要C語言的基本知識來讀懂本文。如果你要為記憶體有限制的嵌入式系統、或者作業系統核心寫程式碼,那麼你需要懂這項技術。如果你在處理極大的應用程式資料集,以至於你的

將成員變數宣告為private和用非成員、非友友提高封裝(Effective C++_22、23))

一、將成員變數宣告為private (條款22) ■ 切記將成員變數宣告為private.這可賦予客戶訪問資料的一致性,可細微劃分訪問控制,允諾約束條件獲得保證, 並提供class作者以充分的實現彈性. ■ protected並不比public

[C++]關於介面的設計與宣告--對封裝的理解

設計與宣告 所謂軟體設計,是“令軟體做出你希望它做的事情”的步驟和方法,通常以頗為一般性的構想開始,最終十足的細節,以允許特殊介面(interface)的開發。這些介面而後必須轉換為C++宣告式。本文討論對良好C++介面的設計和宣告。 1. 讓介

libevent C++ RAII封裝 定時器

前言:    這兩天讀Bitcoin程式碼,不禁感慨作者的強大,程式碼的精妙不是我這碼農虔誠膜拜便能讀懂的,更遠遠談不上企及。於是默默埋頭,回想本屌,工作七年還是個默默無聞不及格的碼農,黯然內流~~C/C++那種非人性化的吐槽:    相信很多童鞋跟本農一樣,吃過飯之後就是不

陣列形式二叉樹C++封裝

一、陣列與二叉樹的對應關係如下:                                                                                                                      

圖的兩種最小生成樹演算法C++封裝

最小生成樹定義:     給定一無向帶權圖,頂點數是n,要使圖連通只需n-1條邊,若這n-1條邊的權值和最小,則稱有這n個頂點和n-1條邊構成了圖的最小生成樹(minimum-cost spanning tree)MST。 兩種最小生成樹演算法: 一、prim演算法

C++學習初級QString

QString提供一個二元+操作符來連線兩個字串和一個+=操作符來向一個字串追加字串。 因為QString在字串的結尾處自動預分配記憶體,所以通過反覆追加字元來增加一個字串是非常快的。 這是一個+和+=結合的例子: QString str = "User: "; str

C#基礎析構函數

bsp alt 基礎 ges -1 c# ima log images C#基礎之析構函數