類簡單來說是使用者自己定義的資料型別。物件是用類這個資料型別定義的乙個變數。
類的基本思想是資料抽象和封裝。
依賴介面和實現分離程式設計的技術。
抽象資料型別包括資料以及操作兩部分,即成員函式以及資料成員。
類的定義:
class
};
private:一般是私有資料成員,私有函式較為少見。私有資料成員只能由私有函式或者友元函式訪問,確保了函式的封裝性。
成員函式在宣告時,可以在結構體(類class內)宣告,但是有時候函式太長,宣告在類裡面太難看,就只能宣告在類之外,這時候就不能只寫成普通函式的樣子了,因為這樣會被定義成乙個普通函式,就不能使用私有成員了。
要想將資料成員定義在類外,可以用:類名::成員函式()的形式。
將資料和操作綁在一起,加上訪問控制,稱作封裝。外部主要通過介面訪問 物件中的資料,稱作向物件傳送資訊。
private、public、porotected限定符。前兩個比較容易理解,寫**也比較常用,最後一種現在還不常使用,主要用於繼承中(暫時還沒學)。
每個成員函式都有的隱藏引數:位址。指向接收訊息的物件,成為this指標。
他是乙個常量,含有實施呼叫的物件的位址。既不能改變他的值,也不能取他的位址。
this指標常用於:
區分與變數名重名的資料成員
返回當前物件
獲取當前物件的位址
使用樣例:
class x
x add(const x& a)
void copy(const x& a)
};
進行訪問修改私有成員的函式稱為訪問器和修改器,一般將名稱設為:set***、get***。
使用時在函式前面加上friend就可以。在類外就可以使用私有函式了。
但是為了封裝性,一般不用友元,我們一般只有在重鑄運算子的時候使用友元。
建構函式對物件進行初始化工作,構析函式是對物件進行銷毀。
建構函式和構析函式都是以類名為名稱,沒有返回值。構析函式前面加個波浪號。
建構函式必須寫兩個,乙個是有參的建構函式,乙個是無參的建構函式。因為我們在定義函式時,會將其設定為普通的資料模式,這就會呼叫無參的建構函式。
構析函式會將物件的生命週期結束,並且函式自動呼叫。可有可無。
在資料成員宣告前加const可以將其限定為常量,在建構函式的初始化列表中進行初始化。
將乙個成員函式宣告為const,表明這個成員函式不會修改物件的資料成員。跟普通的const函式定義的不同性在於,他的const並不放在最前面:
返回型別 成員函式名(參數列) const ;
宣告:
返回型別 成員函式名(參數列)const;
常函式與常物件有著複雜的關係。
常物件只能被常函式呼叫,不能被非常函式呼叫(防止非常函式改變常物件的值)
常函式可以呼叫非常物件,也可以呼叫常物件。
static資料成員屬於整個類,不屬於某個物件。所以只是在類作用域中起作用,不會與全域性域中的名字衝突。並且這個類的所有物件共同訪問,雖然如此,看起來特別的公有化,但是依然可以實現資訊隱藏。
典型的使用樣例是物件計數器,用來統計有多少個物件。使用時可以在建構函式時count++,在析構函式裡面count--。
static資料成員的定義:
static int obj;
資料成員不屬於某個特定的物件,因而不能在建構函式中初始化,必須在類外一定義完類就初始化。
static const int a=2;靜態常量資料成員則必須在類中進行初始化。
訪問:
(1)成員訪問運算子"."、"->"。
(2)類名限定的靜態成員名:類名::count;
static成員函式:
static int getcount();
靜態成員函式只能訪問static型別資料成員。
#include #include #include #includeusing namespace std;
struct cjob;
class student
student(string na,string xh,string zyxx):name(na),zy(zyxx),xuehao(xh)
void input();
friend bool cmp(student d1,student d2);
void jisuan();
void print ();
string getname()
string gatxuehao()
string getzy()
int getpm()
void setpm(int no)
};void student::input()
}void student::jisuan()
jd=sum1/sum;
}void student::print ()
cout}int main()
sort(ob,ob+n,cmp);
for(int i=0;ireturn 0;
}
類與物件總結
一般的資訊管理系統多是需要兩種類 資料類和操作類 資料類 提供實際所需的各種資料 操作類 實現實際操作功能 多為增刪查改 乙個成員函式實現乙個具體功能 資訊管理系統開發基本步驟 1思考分析系統所需各種資料,並設計資料類 前提 2了解系統要實現各種功能,並設計操作類 3除錯程式 滾雪球法,一步一調。最...
類與物件總結
一 類的定義。具有相同性質和功能的東西構成的集合稱為類。類是抽象的,當屬性賦給具體值,方法有具體內容時,才能成為物件,物件是類中可操作的具體化資料。類定義的一般形式 class 類名 public 公有段資料成員和成員函式 類內類外均可見 protected 保護段資料成員和成員函式 只在類內和該類...
類與物件初學總結
內建資料型別 int float char.自定義型別 類 class clock 類名 物件 注意 物件所佔據的記憶體空間只是用於存放資料成員,函式成員不在每乙個物件中存在副本,每個函式的 在記憶體中只佔據乙份空間。關鍵字 public和private用來指定成員的不同訪問許可權 公有型別成員定義...