C 入門(7) 物件

2021-07-09 06:30:43 字數 1306 閱讀 9750

類 = 屬性 + 方法;

類名的第乙個字母一般採用大寫,類宣告的末尾必須加上分號「;」;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 方法的完整小例子。但還沒有介紹如何把這些內容組合在一起,構成乙個完整的程式,其關鍵就在於對類的處理。一 類與結構 類和結構實際上都是建立物件的模板,每個物件都包含資料,並提供了處理和訪問資料...