程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ 零碎知識點,知識點

C++ 零碎知識點,知識點

編輯:C++入門知識

C++ 零碎知識點,知識點


  C++的一些知識點比較零碎,下面清單的形式做一些記錄與歸納,以供參考。

1、賦值操作符重載(深復制):

  (1)由於目標對象可能引用了以前的一些數據,所以應該先delete這些數據;

  (2)注意到對象可能對自己賦值,所以應該加上下面語句(another表示另一個對象),再進行(1)的操作:

    

  (3)函數返回一個指向調用對象的引用;

     (4)賦值操作符只能通過成員函數重載。

2、靜態類成員函數:

 (1)靜態類成員函數在類的聲明中要加static關鍵字,而在定義中則不用;

 (2)靜態類成員函數沒用this指針;

   (3)如果靜態類成員函數是在公有部分中聲明,則可以使用類名和域解析操作符來調用它。

3、構造函數中new的使用:

 (1)如果在構造函數中使用了new來初始化指針成員,則應該在析構函數中使用delete;

 (2)new和delete需對應,new對應delete,new[]對應delete[];

 (3)如果有多個構造函數,則必須使用相同的方式調用new,要麼都是new,要麼都是new[],因為析構函數只有一個,因此所有的構造函數都應該和它兼容。

4、有關函數返回對象:

 (1)返回const對象的引用:

    <1>返回對象會調用復制構造函數,而返回對象的調用則不會,因此效率會有所提高;

    <2>引用指向的對象應該在函數執行時存在。

 (2)返回非const對象的引用,一般有兩種情況:

    <1>重載賦值操作符,使其能夠連續賦值;

    <2>重載與cout一起使用的<<操作符,使其能夠串接輸出,返回形式為: ostream & 。

 (3)返回非const對象:

    假如返回的對象是函數中的局部變量,則不能返回引用,而應返回對象,因為函數執行完局部變量會被銷毀,引用將會失效,而返回對象則會調用復制構造函數,生成臨時對象。

5、指針與對象小結:

  (1)常規聲明方法:

        MyVector *p;

  (2)可以將指針初始化為指向已有的對象:

       MyVector *p = & array[0];

  (3)使用new並通過調用類的構造函數來初始化指針,這將創建一個新的對象:
      MyVector *p = new MyVector(0,0,0);

6、析構函數的調用:

  (1)如果對象是動態變量,那麼當函數執行完定義該對象的程序塊時,將調用其析構函數;

  (2)如果對象是靜態變量,則在程序結束時會調用其析構函數;

  (3)如果對象是通過new創建的,只當顯示使用delete刪除對象時才會調用析構函數。

7、成員初始化列表:
  構造函數可用成員列表為方法對成員數據進行初始化。例如:

  

  (1)這種格式只能運用於構造函數中;

  (2)必須使用這種方法來初始化非靜態const數據成員;

  (3)必須使用這種方法來初始化引用數據成員。

 

    //To be continued.

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved