類 = 屬性 + 方法;
類名的第乙個字母一般採用大寫,類宣告的末尾必須加上分號「;」;c++允許在類裡宣告常量,但不允許對它賦值,除非建立乙個靜態常量。
構造器
1)構造器的名字和它所在類的名字一樣;
2)系統會在建立出某個新例項之後,立刻自動呼叫這個類的構造器;
3)構造器永遠不返回任何值。
如果沒有在類裡定義乙個構造器,編譯器會自動建立乙個,形式為:classname::classname(){},還會建立乙個副本構造器。
構造器經常需要過載,即同乙個類可以有多個構造器定義,它們名字一樣,只是在輸入引數的個數和型別上有差異。
析構器
在銷毀乙個物件時,系統會自動呼叫類的另乙個特殊方法:析構器;
析構函式名也是類名,只是函式名前多了乙個波浪符(~);
析構器永遠不返回任何值且不帶輸入引數,宣告只有一種形式:~classname()。
this 指標
在類裡, this 指標代表當前物件,其基本用途是避免二義性(尤其在引用變數和屬性的時候)。
#include
class student;
//如果在類宣告裡宣告和定義函式,其效果等同於在請求編譯器把每個函式當做乙個內聯函式來對待。
student::student(char s) //如果構造器宣告改為:student(char ***);則為避免二義性,構造器定義中的賦值應改為:this.*** = ***;
student::~student()
void student::print(std::string name) //定義類的方法的函式體時,必須指明該方法屬於哪個類 :classname::functionname
void student::inputname()
else
}}int main(int argc, char** argv)
執行結果為:
i am a constructor.
honey, what's
your
name?
xiuxiu
nice
tomeet
you, xiuxiu
youare
fstudent2's
***isfi
amadestructor.iam
adestructor.
c++入門(6):複雜的資料型別 7 物件模型
標準 c 物件模型在執行時效率方面卓有成效,但是在某些特定問題域下的靜態特性就顯得捉襟見肘。gui 介面需要同時具有執行時的效率以及更高階別的靈活性。為了解決這一問題,qt 擴充套件 了標準 c 所謂 擴充套件 實際是在使用標準 c 編譯器編譯 qt 源程式之前,qt 先使用乙個叫做 moc met...
7 物件的轉型
1 物件的向上轉型 將子類的物件賦值給父類的引用。student s new student 如學生張三 person p s 張三這個人 注意 1 乙個引用能夠呼叫哪些成員 變數和方法 取決於這個引用p裡定義了什麼成員。2 對於,子類重寫父類的方法,引用呼叫的是哪乙個方法,取決於這個引用所指向的物...
C 入門分享(五) 物件與類
到目前為止,我們介紹了組成c 語言的主要模組,包括變數 資料型別和程式流語句 並簡要介紹了乙個只包含main 方法的完整小例子。但還沒有介紹如何把這些內容組合在一起,構成乙個完整的程式,其關鍵就在於對類的處理。一 類與結構 類和結構實際上都是建立物件的模板,每個物件都包含資料,並提供了處理和訪問資料...