1.類的宣告
類是一種使用者自定義型別,宣告形式如下:
class 類名稱 ;
2.公有、私有、保護成員
公有成員(public)
公有成員是在public關鍵字的後面宣告,它們是類與外部的介面,任何外部函式都可以訪問公有型別資料和函式
私有成員(private)
私有成員在關鍵字private後面宣告,只允許本類中的函式訪問,而類外部的任何函式都不能訪問
保護成員(protected)
保護成員在關鍵字protected後面宣告,與
private
類似,其差別表現在在繼承與派生時對派生類的影響不同
3.成員函式
成員函式即方法,既可以在類內進行實現,也可以在類外實現
如果在類內實現的話,編譯器會預設將其的型別設定為inline型別即內聯函式
下面用乙個例子來理解一下:
首先寫乙個student.h的檔案,在裡面對類進行宣告。可以看到現在我是將
a_這個變數定義在
public
下,所以是可以被公共訪問的,而b_和
c_這兩個變數是定義在
private
下的,所以只能在類內進行訪問
接下來,寫乙個student.cpp來對兩個成員函式(方法)進行實現,這種方法即為在類外實現,功能分別為對
a_ b_ c_
三個變數進行賦值以及列印結果
最後,來進行main函式的編寫,首先定義了
student
的乙個物件,呼叫初始化變數的函式,分別初始化為
1,2,3
,接著訪問
a_變數,如果最後輸出的結果為
4,2,3
,說明成功的訪問了
a_變數,證明
public
中的變數是可以在類外訪問的
我們來看一下結果:
最後的結果是4,2,3,說明
a_能夠在類外訪問,成員函式也都成功執行了
4.class vs struct
class資料成員預設是私有的
struct資料成員預設是共有的,在
c++中對
struct
也有所公升級,不僅定義方法改變了,也可以跟類一樣在其中定義方法(成員函式)
下面我們來驗證一下:
5.this指標的作用
在了解this指標的作用前,我們先來看一下下面程式中的
class
和struct
的大小分別為多少
我們對上面的**進行些許修改
我們可以看到不管是class還是
struct
的大小都是
8,說明
class
和struct
的大小只與成員有關,而與成員函式(方法)無關。
這是因為class的空間中只儲存了成員,而成員函式是儲存在共享空間的,即所有的類都可以進行訪問,那麼計算機是怎麼知道到底是哪乙個類呼叫了這個函式呢,這時候就需要用到
this
指標了。
this指標儲存的是呼叫這個方法的物件的位址,在物件呼叫方法的的時候會自動被傳參給方法。
C 類和物件 類和物件
c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...
C 物件和類
1,特殊的類 字串string include include using namespace std int main 類似於標準庫函式,我們不需要記住每種 類 的全部操作,只需要在使用過程中記住一些常用的操作就可以了。如果有需要的話,可以求助於相關書籍或網路 2,當我們對string進行種種操作...
C (類和物件)
類成員函式 類的成員函式指標那些把定義和原型寫在類定義內部的函式,就想類定義中的其他變數一樣。類訪問修飾符 類成員可以定義為public,private或protected。預設情況下是定義為private。建構函式 類的建構函式是一種特殊的函式,在建立乙個新物件是呼叫。析構函式 類的析構函式也是一...