類的初步認識

2021-05-01 13:16:48 字數 958 閱讀 9341

c++一直被稱為是比c更高階的語言,為什麼呢?恐怕就是因為具有物件導向的設計思想,它

將萬千變化、錯綜複雜的外部環境有組織的、有規律的整合在了一起。從規律上,我們引入

了類的概念,將原本複雜的外部環境按照一定的規律和相似點,劃分為不同的類,常言道:

物以類聚,鳥易群分嘛。我們在將類有機的進行區別和管理、整合,從而使這個複雜的環境

顯得僅僅有條了,這樣看來,物件導向似乎是一種現實的認知。不錯,物件導向的思想,正

是一種社會認知的思想。首先我們就來認真的理解一下,c++中,和類有關的概念有哪些?

寫乙個類很容易,在類中宣告一些成員及成員函式也很容易,但是如果將兩個類聯絡在一起

,那往往就複雜起來了。我們都知道建構函式和析構函式,有幾個明白它的實現機制呢?

定義乙個類,編譯器都會為這個類自動生成四個函式,分別為:

a(void);   // 預設的無引數建構函式

a(const a &a);   // 預設的拷貝建構函式

~a(void);   // 預設的析構函式

a & operate =(const a &a); // 預設的賦值函式

我們也可以重新定義這些函式,但是析構函式和賦值函式只能有乙個,建構函式可以有多個

。我們都知道建構函式的目的是初始化類中的成員,而析構函式的目的是清除這些成員所佔

的記憶體,如果我們沒有重寫建構函式和析構函式,那就等於放棄了自主初始化和清除的機會

。還有一點必須指出,就是預設的拷貝建構函式和預設的賦值函式均採用「位拷貝」而非「值拷

貝」的方式來實現,倘若類中含有指標變數,這兩個函式注定將出錯。

如下例子:

#include

static const int num = 10;

class a

;int main()

執行結果,你會驚奇的發現,與你預期的不一樣吧!上例中如果astr定義為陣列,將不會存

在問題。

初步認識類

一 類的定義 class 類的名稱 首字母大寫 比如 class car 然後定義類的屬性 形參 再定義類的方法。class car def init self,make,model,age self.make make self.model model self.age age defget de...

初步認識集合類

2.map collection介面 map介面 public static void main string args 判定元素是否存在 system.out.println collection.contains e 刪除首次出現的那個元素 collection.remove q for str...

類模板的初步認識與使用

include pch.h include include stack1.h using namespace std intmain ret s.top cout 棧頂元素為 ret s.top cout 棧頂元素為 ret endl if s.empty return0 include pch.h...