在c++中,用」類」來描述」物件」。類是屬於使用者自定義的資料型別,「class」 並且該型別的資料具有一定的行為能力。與結構體一樣,類只是一種複雜資料型別的宣告,不占用記憶體,因此不可定義時對成員變數賦值(賦值需要記憶體空間儲存)。乙個類的定義一般包含兩部分的內容,一是該類的屬性,另一部分是它所擁有的方法。乙個類可以建立多個物件,每個物件都是類型別的乙個變數;建立物件的過程也叫類的例項化。每個物件都是類的乙個具體例項(instance),擁有類的成員變數和成員函式。
c++中類必須先定義,才能夠例項化。前向宣告的類不能例項,但可以定義指標或引用。
在c++中,class與struct的區別:(1)、預設的繼承訪問許可權:struct是public的,class是private的;(2)、成員的預設訪問許可權:struct預設是public許可權,class預設是private許可權;(3)、」class」關鍵字還用於定義模板引數,就像」typename」,但關鍵字」struct」不能用於定義模板引數。
類也可以定義在函式體內,稱為區域性類。區域性類只在定義它的區域性域內可見。區域性類的成員函式必須被定義在類體中。區域性類中不能有靜態成員。
成員函式有乙個隱含的指向該物件的指標,稱為附加形參,稱為this指標。使用this指標保證了每個物件可以擁有不同數值的資料成員。每個物件都有乙個特殊的指標,它指向本身。
c++通過public、protected、private三個關鍵字來控制成員變數和成員函式的訪問許可權,它們分別表示公有的、受保護的、私有的,被稱為成員訪問限定符:(1)、在類內部,無論成員變數或成員函式被宣告為public、protected還是private,都是可以互相訪問的,無訪問許可權限制;(2)、在類外部,類建立的物件無法訪問private、protected屬性的成員變數和成員函式,而僅可以訪問public屬性的成員變數和成員函式。
下面**很好解釋了這三種訪問許可權
#include
using
namespace std;
class
stu/*寫入*/
void
get_data()
};//類定義完畢
/*友元函式不是任何類的成員,需要單獨定義,乙個友元(friend)函式允許完全訪問類的私有成員和保護成員。*/
intsco
(stu s)
intmain()
**鏈結 c 中類的學習(二)
1.物件陣列的定義 使用建構函式初始化,比如 box box 2 box 2,3,5 box 1,3,2 2.物件指標 box b1 box b2 b1 b2 定義 b1 height 或者 b1 height 兩句等價 感覺定義指向成員函式的指標這部分很少用啊,但是有點難,還是記一下好了 格式為資...
C 中關於類與物件的學習
第一步 ifndef stock00 h define stock00 h include class stock public void acquire const std string co,long n,double pr void buy long num,double price void...
C 類中的static成員學習總結
c 類中的static成員學習總結 c 類背後蘊含資料抽象和封裝思想。資料抽象是一種依賴於介面和實現分離的程式設計技術。封裝是一項將低層次的元素組合起來形成的新的 高層次實體。對於類而言c 的全域性物件會破壞封裝 全域性物件需要支援特定類的抽象的實現。因為c 類是資料抽象和封裝的結果,在定義類的時候...