一、基本概念
類就是對現實世界中的具有相同屬性物件的抽象描述;一般包括屬性和方法;分為基類(子類)和派生類。
二、類的定義
class 類名 ;
需要注意的點:
1) 類名需要遵循一定的命名規則;
2)public和private是屬性和行為的關鍵字;一般類的屬性成員應設定為private;public只留給那些外界用來呼叫的函式介面;
3)末尾分號不能丟。
例項分析
class point ;
需要注意的是:
1)類的資料成員不能被auto、extern、register等進行修飾,也不能在定義時初始化,如int x=0;//錯誤
2)類定義時public和private沒有先後之分;
3)末尾分號不能丟;
三、c++類的實現
前面類的定義例項中,我們只是完成對類的一些屬性和方法的宣告,並沒有去實現它,類的實現就是完成其方法的過程。類的實現有兩種方式,一種是在類定義時完成對類成員函式的定義,另一種是在類定義的外部進行完成。
1)在類定義時定義成員函式
/* 定義乙個point 類 設定初值並輸出*/
#include
using
namespace
std;
class point
void show_point()
與類的定義相比,在類內實現成員函式不再是在類內進行宣告,而是直接將函式進行定義,在類中定義成員函式時,編譯器缺省會爭取將其定義為inline型函式。
2)在類外部定義成員函式
在類外定義成員函式通過在類內進行宣告,然後在類外通過作用域操作符::進行實現,形式如下:
返回型別 類名::成員函式名(引數列表)
例項中的**改為外部定義為:
/* 定義乙個point 類 設定初值並輸出*/
#include
using
namespace
std;
class point ;
void point::set_point(int x, int y)
void point::show_point()
四、c++類的使用
將乙個類定義和實現之後,就可以用該類建立物件了。
point point1;
//建立乙個類的物件稱為該類的例項化。
將類進行例項化之後系統才會根據該物件的實際需要分配一定的儲存空間。這樣就可以使用該物件來訪問或呼叫該物件所能提供的屬性和方法了。通過物件名.公有函式名(引數列表);的形式就可以呼叫該類物件所具有的方法,通過物件名.公有資料成員的形式可以訪問物件中的資料成員。
五、物件的作用域、可見域與生存週期
類物件的作用域、可見域以及生存週期與普通變數的保持相同,當物件生存週期結束時物件將自動撤銷,所占用的記憶體被**,需要注意的是,如果物件的成員函式中有使用new或者malloc申請的動態記憶體程式不會對其進行釋放,需要我們手動進行清理,否則會造成記憶體洩露。
類的應用——google筆試題練習
/*長度為n的陣列亂序存放著0至n-1,現在只能進行0與其他數的swap 請設計並實現排序;*/
/**思路分析:需求 1 陣列 初始化 排序
需求 2 排序時只能用0進行交換
*/#include
using
namespace
std;
void swap(int* myarray,int a, int b);
class array
~array()
void sort_array()
}for (int j=1; jif (myarray[j] == j)
j++;
else }}
void show_array() ;
array1.set_value(exam,10);
array1.sort_array();
array1.show_array();
return0;}
void swap(int* myarray,int a, int b)
}
C 類定義與實現
一 類的介紹 類是使用者自定義的型別,並且該型別具有一定的行為能力 類中說的描述方法 通常來說,乙個類中包含兩部分的內容,一是該類的屬性,另一部分是它所擁有的方法。比如說 人 這個類,具有姓名,性別,年齡等屬性 此外,人能夠吃飯,睡覺,行走等行為稱為方法。1.類的宣告 即類的成員函式宣告,以成員函式...
C 的類(Class)與結構(Struct)
在 c 中,結構是值型別資料結構。它使得乙個單一變數可以儲存各種資料型別的相關資料。struct關鍵字用於建立結構。結構是用來代表乙個記錄。假設您想跟蹤圖書館中書的動態。您可能想跟蹤每本書的以下屬性 為了定義乙個結構,您必須使用 struct 語句。struct 語句為程式定義了乙個帶有多個成員的新...
Lua的類Class實現
在lua的開頭檔案中宣告 module classa package.seeall 後面宣告函式 function test end則在其他lua檔案中只要require進本檔案,即可classa.test 使用。在lua的開頭檔案中宣告 classa 後面宣告函式 function classa....