封裝在之前的文章中有所涉及,現在將具體的進行學習。
封裝將屬性和行為作為乙個整體,表現生活中的事物,將屬性和行為加以許可權控制,語法在前面類和物件一節中有大概的體現。
class classname
屬性(成員屬性、成員變數)和行為(成員函式、成員方法)被統稱為類中的成員。
下面用乙個圓類來舉例。
實際上類看上去就像乙個公升級版的結構體,對類的訪問還有建立類中的乙個新的物件都和結構體很相似。當然,他們之間也有區別,他們之間唯一的區別就是預設的訪問許可權不同。struct的預設許可權為public,class的預設許可權為private。#include
using
namespace std;
class
circle};
intmain()
封裝也可以將成員放在不同的許可權下進行控制。
訪問許可權有三種:pubilc, private, protected
public許可權被稱為公共許可權,在類內和類外都可以訪問
protected許可權被稱為保護許可權,類內可以訪問,類外不可以訪問,屬性可以被繼承
private許可權被稱為私有許可權,類內可以訪問,類外不可以訪問,屬性不可以被繼承
私有屬性的優勢在於可以自己控制讀寫許可權,同時在寫的時候還可以檢驗資料的有效性。
實際上private的思想就是通過是否使用函式成員控制行為來決定外界對private內部的許可權,使得這一許可權是可以被修改的。因此,public可以被看作是乙個介面,用於連線內部的屬性。#include
#include
using
namespace std;
class
person
//列印姓名
void
getname()
intgetage()
void
setsecret
(string secret)
private
: string m_name;
//可以讀取也可以修改
int m_age;
//唯讀
string m_secret;
//只寫};
intmain()
在類內使用判斷語句就可以控制輸入的資料是否合法。
C 學習(8) 封裝
c 物件導向的三大特性 封裝 繼承 多型 c 認為萬事萬物都可以為物件,物件上有其屬性和行為 具有相同性質的物件,可以抽象為類 封裝是c 物件導向三大特性之一 封裝的意義 封裝意義一 在設計類的時候,屬性和行為寫在一起,表現事物 語法 class 類名 示例1 設計乙個圓類,求圓的周長 includ...
C 學習筆記(3) 封裝
封裝是c 物件導向三大特性之一 封裝的意義 1 封裝的意義 2 類在設計時,可以把屬性和行為放在不同的許可權下,加以控制。在c 中,共有三種許可權 公共許可權 public 類內可以訪問 類外可以訪問 保護許可權 protected 類內可以訪問 類外不可以訪問 私有許可權 private 類內可以...
C 學習筆記(九) 封裝
c 物件導向的三個特性 封裝 繼承和多型。意義 將屬性和行為作為乙個整體,表現生活中的整體。將屬性和行為加以許可權控制。屬性 用資料描述 行為 用函式描述 許可權 public 公共許可權 類內可以訪問,類外也可以訪問。protected 保護許可權 類內可以訪問,類外不可以訪問。兒子可以訪問父親的...