日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++备考期末必看知识点(一篇就够了)

發(fā)布時間:2025/3/19 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++备考期末必看知识点(一篇就够了) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.關(guān)于C++的常用注釋的三種方法

簡要:
第一種方法:(兩個斜桿)/ /
第二種方法:()/ * * /
第三種方法:使用預處理形式 #if 0 #endif
詳細可以參考該篇
添加鏈接描述

二.c++中的作用域 四類(函數(shù)原型作用域,局部作用域,類作用域,命名空間作用域)

簡要:
1.函數(shù)原型作用域:

此作用域為c++程序中最小的作用域,生存周期最短。
(即函數(shù)形參,在函數(shù)的原型聲明時的括號里面的形參的作用域就是函數(shù)原型作用域。)切記是在函數(shù)聲明中不是定義
例:int func(int i) i為參數(shù),作用域類型為函數(shù)原型類型。

2.局部作用域。
3.類的作用域。
4.命名空間作用域。
詳細可以參考該篇
添加鏈接描述

三.在類中友元函數(shù)運算符重載函數(shù)原型中必須要有一個該類的對象

因為類的友元函數(shù)不能通過對象進行調(diào)用

四.類型兼容型規(guī)則

下面通過題目來展開
1.在需要派生類對象的地方,可以使用基類的對象代替(X)
原因:在需要基類對象的任何地方,都可以用公有派生類的對象來替代。

2.基類對象的地址可以賦值給派生類的指針(X)
原因:
1.基類對象到派生類對象之間的轉(zhuǎn)換是不存在的,編譯器時錯誤,因為基類對象只能是基類對象,它不包含也不能包含派生類的成員,如果允許基類到派生類轉(zhuǎn)換,那么就會試圖使用派生類對象訪問不存在的成員。

2.基類對象的引用或指針到派生類對象的引用或指針也是不存在的,不被允許的,編譯時錯誤,原因同上。

3.派生類的對象可以作為基類的對象來使用,且可以使用所以成員(X)
原因:派生類對象可以作為基類的對象使用,但只能使用基類繼承的成員

4.派生類的對象可以初始化基類的引用(正確)
原因:
1)派生類的對象可以賦值給基類的對象(隱含轉(zhuǎn)化)
2)派生類的對象可以初始化基類的引用(隱含轉(zhuǎn)化)
3)派生類的對象的引用可以初始化基類的引用(隱含轉(zhuǎn)化)
4)派生類對象的地址可以賦給指向基類的指針(這里常用)(隱含轉(zhuǎn)化)

5.把派生類對象的引用或指針轉(zhuǎn)換為基類的引用或指針或,通過基類的引用或指針只能訪問派生類繼承自基類的數(shù)據(jù)成員。

5.內(nèi)聯(lián)函數(shù)

1 內(nèi)聯(lián)函數(shù)必須是和函數(shù)體定義在一起,才有效。像這樣的申明Inline Tablefunction(int I)是沒有效果的,編譯器只是把函數(shù)作為普通的函數(shù)申明,我們必須定義函數(shù)體。 (當然也可以在聲明時放Inline,不過必須在定義前加,聲明前加是可有可無的)
Inline tablefunction(int I) {return I*I};
2.可以將定義在類的外部的函數(shù)定義為內(nèi)聯(lián)函數(shù)。

3 在C++中,在類的內(nèi)部定義了函數(shù)體的函數(shù),被默認為是內(nèi)聯(lián)函數(shù)。而不管你是否有inline關(guān)鍵字。
4.內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一個被調(diào)用之前。
原因:在編譯時,如果在調(diào)用時未出現(xiàn)函數(shù)的定義,編譯器就無法用內(nèi)聯(lián)函數(shù)體來替換調(diào)用函數(shù)的表達式。而普通函數(shù)在編譯時不需要進行替換,因此也就不需要在調(diào)用之前定義。
5.內(nèi)聯(lián)函數(shù)在調(diào)用時,是將調(diào)用表達式用內(nèi)聯(lián)函數(shù)體來替換。
(與宏有區(qū)別)

6.輸入流與輸出流的成員函數(shù)

輸入流:istream
1.getline() 函數(shù)
2.ignore() 函數(shù)
3.ignore() 函數(shù)
4.peek() 函數(shù)
5.putback() 函數(shù)
6.read() 函數(shù)
(read 不會在讀到n-1個字符后停止,也不會在字符串后面自動添加空字符,有亂碼,但getline 可以,)
7.gcount 函數(shù)
8.open()函數(shù)
詳細請參考鏈接:

添加鏈接描述

輸出流:ostream
1:open成員函數(shù)。(也可以是輸入流函數(shù))

2:close成員函數(shù)。

3:put成員函數(shù)。

4:write成員函數(shù)。

5:seekp和tellp。

6:錯誤處理函數(shù)。

7.抽象類(重要)

概念:包含純虛函數(shù)的類稱為抽象類。(不是只有純虛函數(shù))
注意:
1.抽象類只能用作基類來派生新類,不能用抽象類來聲明對象。
原因:因為抽象類中的純虛函數(shù)沒有實現(xiàn)相應的功能。
2.但是可以用抽象類聲明指針或引用,通過指針或引用來調(diào)用派生類對象。
3.純虛函數(shù)在抽象類中只定義不實現(xiàn)。
4.抽象類的指針可以指向不同的派生類。

8.讀取帶空格的字符串

1.getline()函數(shù):
注意:
cin.getline(str,10);
中的str是char *類型。
getline(cin,str);
中的str是string類型。
2.get()函數(shù)

3.不能直接使用read()函數(shù)
原因:read(1,2);有兩個形參,第一個是存儲字符的空間,第二個是讀取的字符長度。

9.C++函數(shù)異常說明

異常說明有如下的幾種形式:

  • 指定異常
  • T funNname( parameterlist ) throw( T1, T2,····,Tn);

    其中 T 是類型, parameterlist 是參數(shù)列表, 而類型 T1, T2,····,Tn 是函數(shù)會拋出的異常。

  • 不拋出異常
  • T funNname( parameterlist ) throw( );
    拋出異常類型列表為空,表示的是該函數(shù)不拋出任何類型異常。

  • 拋出任意類型的異常
  • T funNname( parameterlist );
    這表示該函數(shù)可以拋出任意類型的異常。

    總結(jié):異常說明還是有用的!但更多是寫給函數(shù)用戶看的。讓函數(shù)用戶清楚知道拋出的異常類型,從而更好和正確地在運用此函數(shù)時,編寫對其的異常檢測。
    詳細請參考:
    添加鏈接描述

    10 枚舉變量

    以題目為例:

    enum fun{a,b=6,c,d=9}中 c的值是7,而不是8.
    其余詳細可以參考:
    添加鏈接描述

    11.異常處理

    1.拋出異常 throw()
    語法格式:throw 表達式;
    注意:
    其中, throw后面的表達式可以是常量、變量或?qū)ο蟆T摫磉_式的類型比表達式的值更重要, 因為catch子句在捕獲異常時是根據(jù)throw拋出的表達式的類型進行判斷的, 而不是表達式的值。如果需要通過throw拋出多個異常, 應該通過throw后的表達式的不同類型進行區(qū)分。

    2.2.捕獲異常 catch()
    基本語法:
    catch(異常類型說明符)
    {
    異常處理語句;
    }

    有一個比較特殊的可以捕獲所有類型的異常
    格式如下:
    catch(…)
    {
    異常處理語句;
    }
    在執(zhí)行完catch()子句的所有代碼后,程序的控制權(quán)不會重新跳轉(zhuǎn)回拋出異常的函數(shù)中了。

    12.重載函數(shù)

    1.不能用函數(shù)返回值類型來區(qū)分兩個重載函數(shù)。
    2.形參的名字不能用于區(qū)別兩個同名函數(shù)。
    3.普通變量與其引用無法區(qū)分。
    4.如果形參是指針或引用,帶const 與不帶const 的可以區(qū)分

    **
    可以用與區(qū)分的是:**函數(shù)的參數(shù)。(包括 參數(shù)個數(shù),類型及順序)。

    13.虛基類

    1.虛基類與虛函數(shù)的區(qū)別:
    虛基類是用來解決繼承時出現(xiàn)的二義性,而虛基函數(shù)是用來解決動態(tài)多態(tài)的綁定問題的。

    2.虛基類不是在聲明基類時聲明的,而是在聲明派生類,指定繼承方式時聲明的。

    3.虛基類繼承中派生類的構(gòu)造函數(shù):
    派生類的構(gòu)造函數(shù)不僅要調(diào)用其直接基類的構(gòu)造函數(shù),還要調(diào)用其間接基類的構(gòu)造函數(shù)。

    4.虛基函數(shù)的構(gòu)造函數(shù)只會調(diào)用一次

    只由最后定義的派生類來調(diào)用。

    14.對象數(shù)組的初始化

    1.類似初始化普通數(shù)組的方法;

    student str[2]={{1,2},{3,4}};

    注意:這種方法需要結(jié)合拷貝構(gòu)造函數(shù)

    student (const student &); //const student & 格式固定2.```cpp student str[2]={student{1,2},student{3,4}};

    15.常數(shù)據(jù)成員(const)

    1.必須在聲明的同時進行初始化,而且不允許更新。

    2.必須通過構(gòu)造函數(shù)的參數(shù)列表初始化方式進行初始化。
    (也可以在類中初始化常數(shù)據(jù)成員)

    private: const double pi=3.14;

    3.一旦賦值后就不再允許改變,但在初始化常數(shù)據(jù)成員時可以用變量為其賦值。

    16.靜態(tài)常數(shù)據(jù)成員(static const)

    1.必須在類外定義并同時初始化。
    (但,如果類型是整型或枚舉類型,則可以在類中定義為其指定初始值)

    private: static const int pi=3; static const double p;//類外const double 類名::p;=3.14;

    17.常成員函數(shù)

    類型說明符 函數(shù)名 (參數(shù)列表)const

    1.在類中聲明和類外定義都需要關(guān)鍵字const;
    2.在函數(shù)內(nèi)部不能調(diào)用非常成員函數(shù)。(即不能調(diào)用普通成員函數(shù),)
    3.常成員函數(shù)可以用非常對象來調(diào)用,但常對象只能調(diào)用常成員函數(shù)。
    4.常成員函數(shù)內(nèi)部不允許進行數(shù)據(jù)成員的修改,但是可以在函數(shù)內(nèi)部輸出const數(shù)據(jù)成員與非數(shù)據(jù)成員!

    18. 常對象

    const 類名 對象名;

    1.常對象不允許修改其任何的數(shù)據(jù)成員。
    2.常對象必須在定義時初始化,不能被更新。
    3.常成員函數(shù)可以用常對象調(diào)用也可以非用常對象調(diào)用,
    但是常對象只能調(diào)用常成員函數(shù),不能調(diào)用其他類型的函數(shù)。

    19.靜態(tài)數(shù)據(jù)成員(關(guān)鍵詞 static)

  • 用static 聲明的數(shù)據(jù)成員可以被類的所有對象共享。(即,靜態(tài)數(shù)據(jù)成員在內(nèi)存中(像函數(shù)一樣)只有一個副本)。

  • 靜態(tài)數(shù)據(jù)成員的初始化必須在類外部進行。

    類型說明符 類名:: 靜態(tài)數(shù)據(jù)成員 =初始值;
  • 通常用類名進行訪問。,不過也是可以用對象來訪問的。
    基本格式:
    類名:: 靜態(tài)數(shù)據(jù)成員;

    20.靜態(tài)成員函數(shù)

    1.在類外實現(xiàn)時不需要添加static關(guān)鍵詞。
    3.靜態(tài)成員函數(shù)只能直接訪問靜態(tài)成員變量和靜態(tài)成員函數(shù);(即不能直接使用普通變量與常變量)
    2.可以在靜態(tài)成員函數(shù)中訪問非靜態(tài)成員,不過很麻煩。
    因為靜態(tài)成員函數(shù)中沒有this指針。

    21.指針常量、常量指針

    指針常量,意思為指針(指向的地址)是一個常量(不可以修改)。
    常量指針,意思是指向常量的指針。

    int * const p=&a;//指針常量 const int * p=&a;//常量指針

    1、指針常量
    數(shù)據(jù)類型 * const 指針變量=變量名;

    修飾符const與指針變量緊鄰,說明指針變量不允許修改,既然指針變量的值不能修改,所以一定要在定義的時候給定初值(指向一個確定存在的地方)
    p不可以改變,但 *p可以改變

    2、常量指針
    const 數(shù)據(jù)類型 *指針變量=變量名;

    或者 數(shù)據(jù)類型 const * 指針變量=變量名;

    定義一個常量指針后,指針指向的值就不能被改變,即不能通過指針變量直接更改指針指向的值。(*p 不可以改變,但p可以改變)
    指針常量與常量指針

    22.數(shù)組的初始化方式

    數(shù)組的初始化方式

    字符數(shù)組

    23.構(gòu)造函數(shù)

    要求:
    1.構(gòu)造函數(shù)名要與類名相同;
    2.函數(shù)中無返回值類型。
    3.沒有return 語句。
    4.構(gòu)造函數(shù)可以重載。重載時要避免二義性。(如定義了默認構(gòu)造函數(shù),也定義了不帶參數(shù)的構(gòu)造函數(shù), student s;報錯)
    一:委托構(gòu)造函數(shù)
    1.委托構(gòu)造函數(shù)在類內(nèi)創(chuàng)建和實現(xiàn)。
    2.委托構(gòu)造函數(shù)的參數(shù)小于或等于被委托的構(gòu)造函數(shù)。
    委托構(gòu)造函數(shù)

    二.調(diào)用的時機
    在對象創(chuàng)建時調(diào)用;

    //test 類 test a;//調(diào)用一次 test a[3];//調(diào)用三次 test *p=new test;//調(diào)用一次 test *p;//因為沒有創(chuàng)建對象,所以沒有調(diào)用

    24.繼承

    1.派生類繼承了父類的除構(gòu)造函數(shù),折構(gòu)函數(shù)和運算符重載函數(shù)之外的所有成員。
    一.公有繼承
    基類成員的訪問權(quán)限在派生類中不變。

    二.保護繼承
    基類的所有公有成員和保護成員都作為派生類的保護成員,并且只能被他的派生類的成員函數(shù)或友元函數(shù)訪問。(保護成員在類外無法訪問)

    三.私有繼承
    基類的公有成員和保護成員都作為派生類的私有成員。

    繼承

    25.派生類中構(gòu)造函數(shù)的執(zhí)行順序

    1.調(diào)用基類構(gòu)造函數(shù),調(diào)用順序按他們繼承時聲明的順序。
    2.調(diào)用內(nèi)嵌成員對象的構(gòu)造函數(shù),調(diào)用順序按照他們在類中聲明的順序。
    3.派生類的構(gòu)造函數(shù)體中的內(nèi)容。
    折構(gòu)函數(shù)的執(zhí)行順序相反。

    26.函數(shù)調(diào)用

    1 派生類與基類的函數(shù)同名時,派生類會覆蓋掉基類的同名函數(shù),但可以通過::調(diào)用基類中的函數(shù)。
    2.若成員函數(shù)與常成員函數(shù)同名,常對象會調(diào)用常成員函數(shù),普通對象會調(diào)用成員函數(shù)

    27.虛函數(shù)與動態(tài)多態(tài)

    1.虛函數(shù)是實現(xiàn)動態(tài)多態(tài)的基礎(chǔ)。
    2.虛函數(shù)所在的類是基類,在派生類中改寫基類中的虛成員函數(shù)。
    ps:
    1.繼承方式必須是public 繼承(不是 virtual public)
    2.派生類中函數(shù)原型必須與基類中的虛函數(shù)的原型完全一致。關(guān)鍵詞 virtual 不加也可,都視為虛函數(shù)。
    3.虛函數(shù)只能是類的成員函數(shù),但不能是靜態(tài)數(shù)據(jù)成員函數(shù)。
    4.virtual 只能用來說明類聲明中的原型,不能用在函數(shù)實現(xiàn)時。

    在使用動態(tài)多態(tài)時兩大前提:
    1.基類必須用引用或指針來接受派生類。(將根據(jù)引用或指針指向的對象類型來選擇方法)

    // 基類 a ,派生類 b a a1; b b1; a1=b1;//無效 a &a1; b & b1; a1=b1;//有用 //指針同理

    2.調(diào)用的函數(shù)在基類中必須是虛函數(shù)。

    28. 變量的作用域與生命周期

    C++中變量的作用域與生命周期

    28.函數(shù)的聲明,定義

    函數(shù)的聲明就是告訴編譯器我們想要定義一個函數(shù),并明確規(guī)定其返回值(輸出)、函數(shù)名、參數(shù)表(輸入)
    定義函數(shù)的實現(xiàn)功能了,實現(xiàn)函數(shù)功能時,函數(shù)的名稱,返回值,參數(shù)表必須要與此函數(shù)聲明時一致。
    ps:
    1.函數(shù)原型聲明不是必須的。(即可以只給出函數(shù)定義)
    2.函數(shù)原型聲明是形參名可以省略。
    3.函數(shù)的定義不可以嵌套。

    30.重載,隱藏,覆蓋

    重載,隱藏,覆蓋

    31.復制(拷貝)構(gòu)造函數(shù)

    以下情況會調(diào)用拷貝構(gòu)造函數(shù):
    ①當函數(shù)的參數(shù)為類的對象時;
    ②函數(shù)的返回值是類的對象;
    ③對象需要通過另外一個對象進行初始化。
    ps:
    1.形參必須是類對象的引用。
    2.當函數(shù)的形參為類的對象時,會調(diào)用該類的拷貝構(gòu)造函數(shù)生成一個該類的臨時對象,函數(shù)結(jié)束后被折構(gòu)。

    32.友元函數(shù)

    1.可以是全局函數(shù)也可以是其它類的函數(shù)。

    //全局 friend 類型說明符 友元函數(shù)名(); //其他類的 friend 類型說明符 其它類名::函數(shù)名();

    2.friend 只在函數(shù)聲明時使用,在函數(shù)定義時不使用。
    3.在友元函數(shù)內(nèi)部可以直接訪問類的私有成員。

    33.異"^",或(|),與(&)

    1.異,相同為0,不同為1;
    2|.有一個為1,則為1,否則為0;
    3.& 都為1,才為1.

    改錯

    1.const double pi; pi=3.14; 常量必須初始化且不能修改, const double pi=3.14;2.virtual double area()==0; 應該為 virtual double area()=0; 3. private:double pi=3.14;不能賦值 double pi;4.namespace std 缺少分號 namespace std ;(在類的花括號后邊也要有分號)5.int & a=9;不能將引用指向常量。

    總結(jié)

    以上是生活随笔為你收集整理的c++备考期末必看知识点(一篇就够了)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。