C++基礎(學習筆記)

來源:互聯網
上載者:User

   1、C++的標準輸入輸出資料流

C++中提供了一套輸入輸出資料流對象,他們是cin,cout,cerr,對應C語言的中三個檔案指標,stdin,stdout,stderr,分別指向終端輸入,終端輸出和標準出錯輸出(也從終端輸出),cin與>>一起完成輸入操作,cout,cerr與<<一起完成輸出與標準錯誤輸出。利用cin和cout比C語言中的sanf和printf要方便得多,cin和cout可以自動辨別輸入輸出資料類型而自動調整輸入輸出格式,不必像sanf和printf那樣一個個由使用者指定,使用cin,cout不僅方便,而且減少了出錯的可能性。

對於輸出來說,我們我可以用int i=3; cout<<x<<endl;

對於輸入來說,我們可以用int j;cin>>i;

注意箭頭的方向。在輸出中我們還使用endl(end of line),表示換行。主要最後一個是字元"l",而不是數字"1",endl相當於C語言的'\n',表示輸出一個換行。

   2、建構函式

建構函式最重要的作用是建立對象本省。

C++規定,每個類必須有一個建構函式,沒有建構函式,就不能建立任何對象。

C++又規定,如果一個類沒有提供任何建構函式,則C++編譯器提供一個預設的建構函式,這個建構函式不帶任何參數,它只負責建立對象,而不做任何初始化工作。

只有一個類定義了一個建構函式,不管這個建構函式將是否是帶參數的建構函式,c++就不再提供預設的建構函式。如果需要無參的建構函式,則必須自己定義。

   3、解構函式

當一個對象生命週期結束時,其所佔有的記憶體空間就要被收回,這個工作就由解構函式來完成。

解構函式是"反向"的建構函式,解構函式不允許有傳回值,更重要的是解構函式不允許帶參數,並且一個類中只能有一個解構函式。

   4、函數的重載

分析以下情況:是否構成函數的重載。

(1)void output();   int output();---不能

(2)void output(int a,int b=5);   void output(int a);---不能

條件:方法名相同,函數的參數類型,參數個數不同,才能構成函數的重載。

  5、this指標

this指標是一個隱含的指標,它是指向對象本省,代表對象的地址。

一個類所以的對象調用的成員函數都是同一份程式碼片段,那麼成員函數又是怎麼識別屬於同一對象的資料成員呢?原來,在對象調用pt.output(10,10),成員函數除了接受2個實參外,還接受到了一個對象s的地址,這個地址被一個隱含的形參this指標所擷取,它等同於執行this=&pt.所有對資料成員的訪問都隱含地被加上首碼

this->。例如x=0;等價於:this->x=0。

   6、類的繼承訪問特徵

基類的訪問特徵                       類的繼承特徵                                子類的訪問特徵

public                                                                                      public

protected                            public                                            protected

private                                                                                    No Access

 

public                                                                                     Protected

protected                             protected                                     protected

private                                                                                    No Access

 

public                                                                                      Private

protected                             Private                                          Private

private                                                                                    No Access

 7、多態性

當C++編譯器在編譯的時候,發現如果父類的方法是虛函數,這個時候C++就會採用遲綁定(late binding)的技術,在運行時,依據對象的類型來確認調用的哪一個函數,這種能力就做C++的多態性。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.