0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++學(xué)習(xí)筆記(一)

CHANBAEK ? 來源:小二電路 ? 作者:小二電路 ? 2023-03-07 15:54 ? 次閱讀

本篇文章為本人學(xué)習(xí)C++過程中記錄的學(xué)習(xí)筆記,看的是嗶站黑馬程序員視頻,本人覺得講的非常棒,感興趣的可以看看,以下內(nèi)容歡迎大家閱讀和批評指正。

1、指針系列:

(1)① 常量指針 :const int *P; (const修飾指針)

特點(diǎn):指針的指向可以更改,但是指向的值不可以更改。

指針常量 :int * const P; (const修飾常量)

特點(diǎn):指針的指向不可以更改,但是指向的值可以更改。

const既修飾指針,又修飾常量的: const int * const p;

特點(diǎn):指向的值都不能發(fā)生改變。

(2) this指針 :本質(zhì)是指針常量。

2、 靜態(tài)成員

(1)靜態(tài)成員變量 :所有對象共享這一樣的數(shù)據(jù)、類內(nèi)聲明,類外初始化;

(2)靜態(tài)成員函數(shù) :所有對象共享一個(gè)函數(shù)、靜態(tài)成員函數(shù)只能訪問靜態(tài)成員變量。

3、多態(tài):

看如下代碼:

#include
using namespace std;
class Father
{
public:
void func()
{
    cout << "調(diào)用父類成員func()函數(shù)成功!" << endl;
}
};
class Son:public Father
{
public:
void func()
{
    cout << "調(diào)用子類成員func()函數(shù)成功!" << endl;
}
};
void test(Father& f)
{
    f.func();
}
int main()
{
   Son s1;
   test(s1);
}

這個(gè)程序的執(zhí)行結(jié)果是:調(diào)用父類成員func()函數(shù)成功!

為了能夠輸出“調(diào)用子類成員func()函數(shù)成功! ”,解決辦法就是用虛函數(shù),在父類Father的func函數(shù)前加個(gè)virtual。

得注意以下幾點(diǎn):①如果是這樣test(Father* f),指針和引用是一樣的; ②發(fā)生這種動(dòng)態(tài)多態(tài),必須得有繼承關(guān)系; ③子類重寫父類的虛函數(shù),子類加不加virtual都可以( 一般不加,好區(qū)分 )。

(1) 純虛函數(shù)與抽象類

class Father
{
  Public: virtual void func() = 0;
};

上述代碼中,函數(shù)func直接=0,表示純虛函數(shù),含有純虛函數(shù)的類教抽象類。 其派生類必須對函數(shù)func進(jìn)行重寫實(shí)例化,不然也是抽象類。 也就是說,F(xiàn)ather s; 編譯會(huì)報(bào)錯(cuò)。

和虛函數(shù)差不多,一般寫成純虛函數(shù)的都是為了不讓其代碼實(shí)現(xiàn),而是讓子類實(shí)現(xiàn)。

(4) 虛析構(gòu)和純虛析構(gòu) :(解決的同一個(gè)問題,方法不同)

多態(tài)在使用的時(shí)候,如果子類中有屬性開辟到了堆區(qū),那么父類指針在釋放空間時(shí)無法調(diào)用到子類的析構(gòu)代碼,應(yīng)該如何解決?

注:父類的指針在析構(gòu)的時(shí)候,不會(huì)調(diào)用子類的析構(gòu)函數(shù)。 導(dǎo)致,如果有子類堆區(qū)屬性,會(huì)出現(xiàn)內(nèi)存泄漏,也就是delete不了。

解決方法:在父類的析構(gòu)函數(shù)前加上virtual關(guān)鍵字即可。

如果采用的是純虛析構(gòu)的話,virtual ~Father()=0;但是,還得在類外初始化一下才行。 Father::~Father(){}

注:有了純虛析構(gòu)的類也是抽象類,無法實(shí)例化對象。

(5) 多態(tài)性:同一個(gè)操作可以是不同對象的行為

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4333

    瀏覽量

    62720
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    480

    瀏覽量

    70580
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2110

    瀏覽量

    73691
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4796

    瀏覽量

    68706
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    659

    瀏覽量

    32898
收藏 人收藏

    評論

    相關(guān)推薦

    學(xué)習(xí)C++

    有意學(xué)習(xí)C++的朋友,可以加QQ群383309549,完全公益,免費(fèi)授課,本群只接受沒有程序設(shè)計(jì)經(jīng)驗(yàn)、想學(xué)習(xí)C++程序設(shè)計(jì)的朋友喲??!{:1:}
    發(fā)表于 07-29 21:51

    C++筆記003:C++個(gè)小程序開始

    ` 本帖最后由 tyyhmtyyhm 于 2018-5-12 09:37 編輯 筆記三:從個(gè)小程序開始安裝好VS2010后,從第個(gè)小程序開始。在學(xué)習(xí)
    發(fā)表于 03-05 12:51

    學(xué)習(xí)c++的經(jīng)驗(yàn)分享!

    轉(zhuǎn)自:http://www.cndzz.com/download/4094_0/111678.html 學(xué)習(xí)學(xué)好c++的50條忠告1.把C++當(dāng)成門新的語言
    發(fā)表于 10-08 03:46

    如何學(xué)習(xí)C++,如何學(xué)好C++

    最近,很多學(xué)員都給我發(fā)郵件問我應(yīng)該如何學(xué)習(xí)C++,如何學(xué)好C++?那么作為個(gè)從C語言小白摸爬滾打、入坑無數(shù)到成長為如今的高級
    發(fā)表于 08-20 06:27

    如何學(xué)習(xí)編程c++語言?

      如何學(xué)習(xí)編程c++語言?粵嵌來講解嵌入式C語言在各種項(xiàng)目中要用到的知識(shí)點(diǎn),尤其是嵌入式C語言之變量與常量的內(nèi)容:   1、變量類型和表示方法   如何
    發(fā)表于 12-15 08:28

    學(xué)習(xí)C++的方法以及C++的就業(yè)方向

    學(xué)習(xí)方向:嵌入式+人工智能嵌入式是門技術(shù)學(xué)習(xí)目標(biāo)1.嵌入式開發(fā)概述;(面向?qū)ο笤谇度胧介_發(fā)中角色)2.嵌入式Linux C++編程;(C++
    發(fā)表于 12-24 07:32

    在main文件中怎樣去使用C++

    ESP32 之 ESP-IDF 學(xué)習(xí)筆記(五 - 2)【使用C++的工程】文章目錄ESP32 之 ESP-IDF 學(xué)習(xí)筆記(五 - 2)【使
    發(fā)表于 01-07 07:44

    CC++學(xué)習(xí)過程總結(jié)

      總是被同學(xué)們問到,如何學(xué)習(xí)CC++才不茫然,才不是亂學(xué),想了下,這里給出個(gè)總的回復(fù)。   
    發(fā)表于 09-10 11:42 ?1242次閱讀

    C++語言學(xué)習(xí)提綱

    C++語言學(xué)習(xí)提綱
    發(fā)表于 12-30 14:50 ?0次下載

    C++“指針”學(xué)習(xí)建議

    C++“指針”學(xué)習(xí)建議
    發(fā)表于 03-31 15:53 ?3次下載

    Linux C/C++ 學(xué)習(xí)路線

    、秋招 Linux C/C++ offer 情況二、Linux C/C++ 方向的些思考三、
    發(fā)表于 11-06 19:36 ?14次下載
    Linux <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>學(xué)習(xí)</b>路線

    C語言和STM32學(xué)習(xí)學(xué)習(xí)筆記

    自己總結(jié)的C語言和STM32F1學(xué)習(xí)筆記,適合想快速了解學(xué)習(xí)
    發(fā)表于 03-24 14:53 ?36次下載

    C++學(xué)習(xí)筆記c++的基本認(rèn)識(shí)

    自這篇文章我們即將開始C++的奇幻之旅,其內(nèi)容主要是讀C++ Primer的總結(jié)和筆記,有興趣可以找原版書看看,對于學(xué)習(xí)C++還是有很大幫助
    的頭像 發(fā)表于 03-17 13:57 ?744次閱讀

    C++學(xué)習(xí)筆記之順序容器

    C++中的順序容器是種用于存儲(chǔ)和管理元素序列的數(shù)據(jù)結(jié)構(gòu)。它們提供了組有序的元素,并支持在序列的任意位置插入和刪除元素。C++標(biāo)準(zhǔn)庫中提供了多種順序容器,包括vector、deque
    的頭像 發(fā)表于 05-11 17:05 ?605次閱讀

    C/C++語言學(xué)習(xí)大全套

    電子發(fā)燒友網(wǎng)站提供《C/C++語言學(xué)習(xí)大全套.rar》資料免費(fèi)下載
    發(fā)表于 11-18 14:33 ?4次下載
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>語言<b class='flag-5'>學(xué)習(xí)</b>大全套