CLASS(C++關鍵字)

在C++中,程式設計師用"類"來描述 "對象", 所謂的"對象"是指現實世界中的一切事物。那么類就可以看做是對相似事物的抽象, 找到這些不同事物間的共同點, 如腳踏車和機車, 首先他們都屬於"對象", 並且具有一定得相同點, 和一些不同點, 相同點如他們都有質量、都有兩個輪子, 都是屬於交通工具等。"都有質量"、"兩個輪子"屬於這個對象的屬性, 而"都能夠當做交通工具"屬於該對象具有的行為, 也稱方法。 類是屬於用戶自定義的數據類型, 並且該類型的數據具有一定的行為能力, 也就是類中說描述的方法。通常來說, 一個類的定義包含兩部分的內容, 一是該類的屬性, 另一部分是它所擁有的方法。以 "人類" 這個類來說, 每個人都有自己的姓名、年齡、出生日期、體重等, 為人類的屬性部分, 此外, 人能夠吃飯、睡覺、行走、說話等屬於人類所具有的行為。 上面舉例中所描述的 "人" 類僅僅是具有人這種對象的最基礎的一些屬性和行為, 可以稱之為人的"基類"。 再說說一些具有一些職業的人, 例如學生, 一個學生還具有"基類"中所沒有的屬性, 如學校、班級、學號; 也可以具有基類所不具有的行為, 如每天需要去上課, 需要考試等。 學生類可以看做是基類的一個擴展, 因為他具有基類的所有屬性和行為, 並且在此基礎上增加了一些基類所沒有的屬性和行為, 像"學生"這樣的類稱為"人類"這個基類的"派生類"或者"子類"。在學生的基礎上還可以進一步的擴展出其他更高級的類, 如"研究生"類。

基本介紹

  • 中文名:類
  • 外文名:class
  • 類型:關鍵字
  • 標準:ISO/ANSI C++11
  • 公共類定義:public
  • 友元定義:friend
  • 私有類定義:private
  • 重載運算符:operator
  • 繼承類定義:protected
  • 作用域:隨類型和定義位置而定
使用class,類對象的生存,

使用class

定義
為了儘量減少全局變數的使用並提供用戶自定義類型的功能,C++語言提供了一種新的語言機制---類(class),並以類作為構造程式的基本單位。
C++中使用關鍵字class來定義類, 其基本形式如下:
class 類名{        public:                        //公共的行為或屬性             private:                        //私有的行為或屬性};
①. 類名 需要遵循一般的命名規則;
②.publicprivate為屬性/方法限制的關鍵字, private 表示該部分內容是私密的, 不能被外部所訪問或調用, 只能被本類內部訪問; 而 public 表示公開的屬性和方法, 外界可以直接訪問或者調用.一般來說類的屬性成員都應設定為private, public只留給那些被外界用來調用的函式接口, 但這並非是強制規定, 可以根據需要進行調整;
③. 結束部分的分號不能省略。
C++ 語言中class是定義關鍵字,C++中也可以使用struct定義類。兩者區別是,用class定義的類,如果數據成員成員函式沒有說明則默認為private(私有)的,而用struct定義的,默認為public(公共)的。
示例:
定義一個點(Point)類, 具有以下屬性和方法:
■ 屬性: x坐標, y坐標
■ 方法: 1.設定x,y的坐標值; 2.輸出坐標的信息
實現代碼如下:
class Point            {                public:                    void setPoint(int x, int y);                    void printPoint();                private:                    int xPos;                    int yPos;            };
類在定義時有以下幾點需要注意:
①.類的數據成員中不能使用 auto、extern和register等進行修飾, 也不能在定義時進行初始化, 如
int xPos = 0;//錯;
②.類定義時 private 和 public 關鍵字出現的順序和次數可以是任意的;
③.結束時的分號不能省略, 切記!
使用
將一個類定義並實現後, 就可以用該類來創建對象了, 創建的過程如同 int、char 等基本數據類型聲明一個變數一樣簡單, 例如我們有一個Point類, 要創建一個Point的對象只需要:
Point 對象名;

創建一個類的對象稱為該類的實例化, 在創建時我們還可以對對象的屬性進行相關的初始化, 這樣在創建完成後該對象就已經具有了一定的屬性。
將類進行實例化後系統才會根據該對象的實際需要分配一定的存儲空間。這樣就可以使用該對象來訪問或調用該對象所能提供的屬性或方法了。
通過對象名.公有函式名(參數列表);的形式就可以調用該類對象所具有的方法, 通過對象名.公有數據成員;的形式可以訪問對象中的數據成員。

類對象的生存

作用域、可見域以及生存周期
類對象的作用域、可見域以及生存周期與普通變數的保持相同, 當對象生存周期結束時對象被自動撤銷, 所占用的記憶體被回收, 需要注意的是, 如果對象的成員函式中有使用new(C++)或者malloc()(C)申請的動態記憶體程式不會對其進行釋放, 需要我們手動進行清理, 否則會造成記憶體泄露。

相關詞條

熱門詞條

聯絡我們