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

類的總結

編輯:C++入門知識

用了兩天的時間復習了一下類。趁熱打鐵

在學習類之前先要大概了解一下(聲明)和(定義)這個兩個的含義。(以c++primer為准)

定義:用於為變量分配存儲空間,還可以為變量制定初始值。在一個程序中,變量有且僅有一個定義。

聲明:用於向程序表明變量的類型和姓名。

大致可以理解為:通過使用extern關鍵字聲明變量名和對象名,對象類型和對象類型前的關鍵字extern只聲明不定義,其他的聲明和定義是同步的。


類:C++中用來定義自己的抽象數據類型

類主要包含兩部分

1.成員變量

2.成員函數

訪問屬性有三類:public private protect

public屬性的成員在類外可以調用

private屬性的成員只可以在類內部使用

protect屬性的成員和private差不多,但是protect屬性的成員可以在子類中被調用

類成員必須在類中進行聲明,成員函數的定義可以再類中(內聯函數inline),也可以在類外。

 


(一)成員變量

1.)類的成員變量可以是內置類型也可以是自定義類型,當成員變量被const限定時初始化只可以在類的構造函數中的初始化列表中進行初始化(const static例外);

2.)形參表和函數體處於類作用域中,可以使用類自有的成員和定義。返回類型不一定在類的作用域中,不可以使用類定義的類型(必須用完全限定名)。

 

 

(二)成員函數

1.)this指針:每個成員函數(static函數除外)都有一個額外的,隱含的形參this。在調用成員函數時形參this初始化為調用函數的對象的地址。


2.)構造函數:構造函數是特殊的成員函數沒有返回值函數名就是類名,如果自己不定義構造函數則類會自動生成一個默認構造函數初始化類的成員變量(只初始化有隱式初始化的變量)。構造函數也可以像普通函數一樣重載。類定義對象時就會調用構造函數(如果重載了根據傳進的實參類型調用),構造函數的初始化列表成員初始化順序和定義成員的次序一樣。

3.)常量成員函數:成員函數形參後面加上限制符const這個成員函數就被聲明為常量成員函數,定義時也必須跟著const。const改變了this的類型,this變成指向const對象的指針,所以不可以修改this值,也就是不可以修改調用該函數的對象的值。const對象只可以調用const類型的函數。

4.)inlien函數:內聯函數避免函數調用的開銷。適用於優化小的經常被調用的函數。內聯函數,就是在調用點上內聯的展開

5.)static成員函數,無隱含this指針所以不可以調用非static成員函數,如需調用可以傳this指針或者傳遞對象引用或者指針

6.)友元函數,友元聲明將已命名的類或者非成員函數引入到外圍作用域中

7.)類的隱式轉換,如果類的構造函數有一個形參(不考慮默認形參)那麼這個類可以隱式轉化,抑制隱式轉化的方法是在構造函數前加上explicit。


 

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