c 知識點總結(1)

2021-07-28 02:33:03 字數 1704 閱讀 9996

只有在 

同一類定義中的同名成員函式才存在過載關係 ,主要特點是 

函式的引數型別和數目有所不同 ,但 

不能出現函式引數的個數和型別均相同 ,僅僅依靠返回值型別不同來區分的函式,這和普通函式的過載是完全一致的。另外,過載和成員函式是否是虛函式無關

覆蓋:

在 派生類中覆蓋基類中的同名函式,要求兩個函式的

引數個數、引數型別、返回型別都相同,且基類函式必須是虛函式。

隱藏:

派生類中的函式遮蔽了基類中的同名函式,

2個函式引數相同,但基類函式不是虛函式(

和覆蓋的區別在於基類函式是否是虛函式)。2個函式引數不同,無論基類函式是否是虛函式,基類函式都會被遮蔽(

和過載的區別在於兩個函式不在同一類中)。

int main()

正數原碼、反碼、補碼形式一致。

負數反碼,為其原碼的符號位不變,其他位取反;

負數補碼,是其反碼加1。

舉例8bit有符號型整數:

+34原碼=反碼=補碼:00100010

-34原碼=10100010,反碼=11011101,補碼=11011110

******************************====

不管是在32還是在64位編譯器處理下,int都是4位元組32位,所以整數範圍是-2147483648~2147483647,數值以補碼形式儲存。

【注意】最小負數-2147483648=-2

31並沒有原碼和反碼,只有補碼,由 -0的原碼 

1 0...0(31個0) 表示 。

因此:1、~i:對每一位 

取反運算。為

01...1(31個1),是正數,補碼即原碼,即2

31-1=2147483647; 2、

-i:對該數求補運算,即【每位】取反運算,再加1。取反, 

10...0(31個0)-> 

01...1(31個1),再加1得 

10...0(31個0),

該補碼表現為

最小負數- 2147483648,並沒有原碼和反碼;

3、1-i:補碼形式相加,再推回原碼得十進位制結果。-i( 

10...0(31個0) )+(

0 ...1(31個0) )= 

10...1(30個0),此為補碼形式,

補碼轉原碼為補碼減1,再非符號位取反,即原碼

1...1(32個1)= -(2

31-1)= - 2147483647 

; 4、-1-i

:補碼形式相加,再推回原碼得十進位制結果。即-i( 

10...0(31個0) )+(

1 ...1(32個1) )= 

01...1(31個1),是正數形式,原碼即補碼,為2

31-1= 2147483647 。

以下哪種語法在c++中是錯誤的?其中x為一c++類

這裡大x表示類,小寫x代表例項。

其實考的是const用法:在x *x這個經典語句中,const插到*前面還是*後面的區別。

ab沒有區別,const在*號前面,都表示*x不可修改。

c中*號前面兩個const,g++編譯器也提示duplicate 'const',所以c的語法是錯的。

d中const在*號後面,表示x指標不可修改。執行 會提示x需要初始化。 const型別的指標宣告時必須初始化

C 公升級知識點總結1

1 for功能增強 功能一 for int i 0 i 3 i cout i endl 功能二 int array 3 for int temp array foreach用法直接陣列內容依次傳給temp cout temp endl 2 auto關鍵字 1 c 中auto 型別推導 2 c語言中a...

c 知識點總結

1 c 中判斷物件為空的幾種方式 1 先了解幾個與空型別相關的關鍵字和物件 null 關鍵字表示不引用任何物件的空引用,它是所有引用型別變數的預設值,在2.0版本之前也就只有引用變數型別可以為null,如 string a null 但在c 2.0版本之後,net也引入了可以為null的值型別,但變...

C 知識點總結

程式 資料結構 演算法.c語言是面向過程的,面向過程就是分析出解決問題的步驟,然後用函式將其實現,使用時依次呼叫.程式 物件 訊息.c 是物件導向的,c 物件導向是將構成問題的事物分解成各個物件,每個物件完成在解決整個問題中的行為.主要特點是類,封裝,繼承,多型等。物件導向的語言具有更好的可擴充套件...