個人總結C 知識點

2022-06-21 11:12:04 字數 3316 閱讀 7186

c++知識點

1、什麼是類?什麼是物件?類與物件之間有什麼樣的關係?類不分配記憶體空間,只給物件分配空間。類的每個物件的空間存放哪些資訊?是否包含類的成員函式?

答:乙個類是由一批資料以及對其操作的函式組成的。客觀世界中任何乙個事物都可以看成乙個物件。類是物件的抽象,物件是類的具體表現形式。

2、物件導向程式設計的特點是什麼?

答:抽象,封裝,繼承和多型性。

3、類中的成員有哪幾種訪問屬性?預設的是什麼屬性?

答:訪問屬性有公有(public)和私有(private),預設的是私有(private)。

4、類中的靜態成員在類的各物件中共享的意思是什麼?什麼是this指標?作用是什麼?靜態成員函式中有this指標嗎?

答:靜態的資料成員在記憶體中只佔乙份空間,所有的物件共享這些靜態資料成員,都可以引用它。

this指標是指向本類物件的指標,它的值是當前被呼叫的成員函式所在的物件的起始位址。this指標是隱式使用的,它是作為引數被傳遞給成員函式的。

靜態成員函式中沒有this指標。

5、類有兩個特殊的成員函式:建構函式和析構函式,它們是不是必須有的?各有幾個?

其定義格式及執行機制是什麼?建構函式有返回值嗎?可以帶預設引數嗎?

在同一函式中定義了兩個物件的時候,先執行哪個物件的構造?函式結束時,先執行哪個物件的析構?

答:建構函式和析構函式是必須有的,但不是必須宣告的,如果沒有宣告,系統會預設建構函式和析構函式。建構函式可以有多個,但是析構函式只有乙個,建構函式首部的一般格式是:

建構函式名(型別1 形參1,型別2 形參2,。。。 ),析構函式的一般格式是:~建構函式名()。

在類物件進入其作用域時呼叫建構函式,當物件的生命期結束時,會自動執行析構函式。建構函式沒有返回值,可以帶預設引數。在同一函式中定義了兩個物件的時候,先執行先構造的物件的建構函式,再執行後構造的物件的建構函式;函式結束時,先執行後構造的物件的析構函式,再執行先構造的物件的析構函式。

6、類中還有一種建構函式叫複製建構函式,在格式上與建構函式有什麼不同,執行上有什麼不同?什麼時候執行複製建構函式?什麼時候執行對應的析構函式?

答:複製建構函式的一般形式為:類名(類名 &物件名),複製建構函式在用已有物件複製乙個新物件時被呼叫。在消亡之前執行對應的析構函式。

7、類與類之間有一種關係叫:友元,友元類的定義及友元規則是什麼?有對稱性和傳遞性嗎?

答:乙個類的友元函式可以訪問這個類中的私有成員。友元函式既可以是一般函式,也可以是另乙個類的成員函式。乙個函式(包括成員函式和普通函式)可以被多個類宣告為友元函式。

8、什麼是類的派生?構造乙個派生類要做的三部分工作是什麼?類的繼承方式有哪些?預設哪種繼承?各種繼承帶來的基類成員在派生類中的訪問屬性有什麼不同?

答:類的派生也叫類的繼承,所謂繼承就是在乙個已存在的類的基礎上建立乙個新的類,乙個新類從已有的類那裡獲得其已有特性,這種現象稱為類的繼承。構造乙個派生類包括以下三部分內容:

從基類接收成員;調整從基類接收的成員;在宣告派生類時增加的成員。類的繼承方式有:公用繼承,私有繼承和受保護的繼承,預設為私有繼承。

在公用繼承中,基類的公有成員在派生類中依然公有,基類的受保護成員在派生類中依然受保護,基類的私有成員在派生類中不可以直接訪問;在私有繼承中,基類的公有成員在派生類中變得私有,基類的受保護成員在派生類中變得私有,基類的私有成員在派生類中不可以直接訪問;在受保護的繼承中,基類的公有成員在派生類中變得受保護,基類的受保護成員在派生類中變得受保護,基類的私有成員在派生類中不可以直接訪問。

9、派生類建構函式的一般格式是什麼?派生類的建構函式和基類的建構函式是什麼關係?在定義了乙個派生類物件的時候會不會執行基類的建構函式?

如果執行的話,派生類物件消亡時執行析構函式的順序又是什麼?如果基類沒有定義析構函式,則只呼叫派生類的析構函式嗎?如果派生類沒有定義析構函式,則只呼叫基類的析構函式?

答:定義派生類建構函式的一般形式為:

派生類建構函式名(總參滑鼠類別):基類建構函式名(參數列列),子物件名(參數列列)。派生類的建構函式和基類的構造資料是呼叫關係。

在定義了乙個派生類物件的時候會先執行基類的建構函式,再執行派生類的建構函式;如果執行的話,派生類物件消亡時先執行派生類的析構函式,再執行基類的析構函式;如果基類沒有定義析構函式,不是只呼叫派生類的析構函式,因為系統會預設乙個基類的析構函式;如果派生類沒有定義析構函式,不是只呼叫基類的析構函式,因為系統會預設乙個派生類的析構函式。

10、什麼是多重繼承?虛基類的意義是什麼?

答:乙個派生類同時繼承多個基類,這種行為稱為多重繼承。c++提供虛基類的方法,使得在繼承間接共同基類時只保留乙份成員。

11、函式過載與虛函式有什麼不同?與同名覆蓋有什麼不同?

答:函式過載:引數必須不同;虛函式:引數完全一致;同名覆蓋:函式首部相同,函式體不同。

12、運算子過載是函式過載嗎?運算子過載的規則有哪些?哪些運算子可以過載為成員函式?那些運算子可以過載為友元函式?哪些運算子既可以過載為成員函式又可以過載為友元函式?

答:運算子過載是函式過載,運算子過載的規則有:(1)c++不允許使用者自己定義新的運算子,只能對已有的c++運算子進行過載;(2)過載不能改變運算子運算物件(即運算元)的個數;(3)過載不能改變運算子的優先級別;(4)過載不能改變運算子的結合性;(5)過載運算子的函式不能有預設的引數;(6)過載的運算子必須和使用者定義的自定義型別的物件一起使用,其引數至少應有乙個是類物件(或類物件的引用);(7)用於類物件的運算子一般必須過載,但是運算子「=」和「&」不必使用者過載;(8)運算子過載函式可以是類的成員函式,也可以是類的友元函式,還可以是既非類的成員函式也不是友元函式的普通函式。

++,--可以過載為類的成員函式,<<,>>可以過載為類的友元函式,+既可以過載為類的成員函式也可以過載為類的友元函式。

13、什麼是多型?多型的分類有哪幾種?函式過載屬於哪一種?虛函式屬於哪一種?虛函式的作用是什麼?

答:向不同的物件傳送同乙個訊息,不同的物件在接受時會產生不同的行為,叫做多型。多型分為兩類:

靜態多型性和動態多型性,靜態多型性又稱為編譯時的多型性,通過函式過載實現;動態多型性又稱為執行時的多型性,通過虛函式實現。虛函式的作用是允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標或引用來訪問基類和派生類中的同名函式。

14、什麼是類的組合?類的物件成員的型別可以是本類的基類,也可以是另外乙個已定義的類嗎?

答:在乙個類中以另乙個類的物件作為資料成員的,稱為類的組合。物件成員的型別可以是本派生類的基類,也可以是另外乙個已定義的類。

15、抽象類和純虛函式的概念是什麼?抽象類的作用是什麼?抽象類可以定義物件嗎?

答:純虛函式是在宣告虛函式時被「初始化」為0的函式。凡是包含純虛函式的類都是抽象類。

抽象類的作用是作為乙個類族的共同基類,或者說為乙個類族提供乙個公共介面。抽象類不可以定義物件,因為純虛函式不能被呼叫,但是可以定義指向抽象類資料的指標變數。

C 知識點總結

2 類是乙個型別,本身不佔空間,物件佔空間。2.建構函式的作用 分配空間並且初始化。物件要分配空間,必須呼叫建構函式,如果無建構函式,系統預設提供乙個無參的建構函式,其之分配空間,並未賦初值 建構函式可以過載,但不能有返回值。3.全域性物件 主函式之前分配空間,主函式之後釋放空間 即主函式之前可以執...

總結 C知識點

資料型別 值型別 基本資料型別 在c 現的簡單型別共享一些特性。第一,它們都是.net系統型別的別名。第二,由簡單型別組成的常量表示式僅在編譯時而不是執行時受檢測。最後,簡單型別可以按字面被初始化。以下為c 簡單型別歸類 整型,布林型 字元型 整型的一種特殊情況 浮點型 小數型 列舉 乙個由一指定常...

C 知識點總結

c 的特點 1.支援抽象資料型別 2.多型性,乙個介面,多重演算法,支援早期聯編和滯後聯編 3.繼承性,保證了 復用,支援分類的概念 乙個c 程式由乙個或多個函式構成,並且在這些函式中只有乙個主函式main,它是程式執行的入口。c 程式嚴格區別字母的大小寫。c 程式中的字元 字元單位 0x00 0x...