C++是在c語言的基礎上增長了面向對象編程部分的新語言(已經不新了),因此面向對象部分也是ios
C++的重中之重c++
定義:類用於指定對象的形式,它包含了數據表示法和用於處理數據的方法。類中的數據和方法編程
稱爲類的成員。函數在一個類中被稱爲類的成員。函數
我的理解類就是許多類似對象(等下會提到)的一個公用模板,對象則是具體化的類。spa
就像百度百科的定義那樣:類是對象的抽象,而對象是類的具體實例。類是抽象的,不佔用內code
存,而對象是具體的,佔用存儲空間。類是用於建立對象的藍圖,它是一個定義包括在特定類型對象
的對象中的方法和變量的軟件模板。繼承
下面是類的一個具體的例子string
class neme//類名{ public://訪問修飾符 int a;//類中可調用的數據,被稱爲類的成員 }
咱們能夠看出,一個類是由it
類名,訪問修飾符,和類的成員組成
1類名: 類名故名思意,就是指類的名稱,用來肯定一個類,便於調用。
2類的成員,由方法和數據構成,方法指一種特殊的函數,是定義在類中的函數,能夠調用對象的數據。
3訪問修飾符 : 數據封裝是面向對象編程的一個重要特色,它防止函數直接訪問類類型的內部成
員。類成員的訪問限制是經過在類主體內部對各個區域標記 public、private、protected 來指定
的。關鍵字 public、private、protected 稱爲訪問修飾符。咱們對這三種訪問修飾符進行一 一介紹
(1) public 公有成員
首先來看public ,它表明的意義是公有成員,而公有成員在程序中類的外部是能夠別訪問的,不須要成
員函數去得到公有變量的值(在類中定義在共有區域的變量被稱爲共有變量)也就是說,咱們能夠不受限
制的去調用共有成員,舉個例子把。
#include<iostream> #include<cstdio> #include<cstring> #include<string> using namespace std; class name{ public: int a; }; int main(){ name fi;//定義 fi.a=1;//由於a是公有成員,咱們才能作到直接訪問修改 cout<<fi.a; return 0; }
這就完成了一次簡單的調用
(2) private 私有成員
定義:私有成員變量或函數在類的外部是不可訪問的,甚至是不可查看的。只有類和友元函數能夠訪問私有
成員。默認狀況下,類的全部成員都是私有的。例如在下面的類中,width 是一個私有成員,這意味
着,若是您沒有使用任何訪問修飾符,類的成員將被假定爲私有成員:
正如定義所說,私有成員和公有成員區別在於調用,咱們只能經過同一個類中的public成員或者是友元
(之後會提到)來對private進行調用,注意只能是同一個類中的public 調用該類中的private
舉個例子
#include<iostream> #include<cstdio> #include<cstring> #include<string> using namespace std; class name{ private: int len;//定義一個私有成員 public: void change(){ len=1; } void write(){ cout<<len; } }; int main(){ name fi; //fi.len=1; 像這樣直接調用private會報錯。 fi.change();//調用public來對其更改 fi.write();//輸出 return 0; }
(3) protected 受保護成員
定義:protected(受保護)成員變量或函數與私有成員十分類似,但有一點不一樣,protected(受保
護)成員在派生類(即子類)中是可訪問的。
因爲涉及到了派生類和繼承,因此在這裏不過多介紹,之後會更詳細的進行介紹。大體理解成能夠在
子類中調用的private便可
注意同一類中,private也是能夠訪問public的
咱們能夠發現,struct 的使用和class很是類似,沒錯,struct正是全是public的簡單類
這個對象可不是找的那個對象,(整日面向對象編程卻沒有對象,可憐) 指類的一個具體實現
其實在上面針對類的使用過程當中咱們已經用到了對象,例如
name fi;
name 是咱們定義的類名,fi 則是定義的對象,fi擁有了類的特稱,即類中的成員。正是在類的基礎上
咱們才能夠定義一個具體的對象
本節內容到此就結束了,之後大概會一週一更吧。