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

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

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

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

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

4、 常對(duì)象、常函數(shù)

(1) 常對(duì)象 :只能調(diào)用常函數(shù); const Father p;

(2) 常函數(shù) :成員函數(shù)之后加上const、函數(shù)內(nèi)部不可以修改成員

屬性;

代碼:void func() const{}。

成員函數(shù)后面加const實(shí)質(zhì)是修飾的是this的指向,this指針本身就是指針常量,指向不可以改,值可以改,再加上const之后,全都不可以改。 **注:普通對(duì)象也可以訪問(wèn)常函數(shù)。 **

但是在成員變量前加上mutable,常函數(shù)可以訪問(wèn),常對(duì)象也可以訪問(wèn)。

5、 繼承

(1)菱形繼承:(虛基類(lèi))

一個(gè)動(dòng)物類(lèi),一個(gè)馬類(lèi),繼承了動(dòng)物類(lèi); 同樣,一個(gè)驢類(lèi)也繼承了動(dòng)物類(lèi)。 這時(shí),一個(gè)騾子類(lèi)不僅繼承了馬類(lèi),也繼承了驢類(lèi),這個(gè)時(shí)候從動(dòng)物類(lèi)里繼承的數(shù)據(jù)很容易產(chǎn)生二義性,有好多數(shù)據(jù),我們調(diào)用騾子類(lèi)的時(shí)候到底用哪一個(gè)?

解決方法:在馬類(lèi)和驢類(lèi)繼承動(dòng)物類(lèi)的關(guān)鍵字前加上virtual,使其成為虛基類(lèi)即可。 數(shù)據(jù)只保存最新賦值那一份。

Class Anmial
{Public:int m_age;};
Class Ma:virtual public Anmial{};
Class Lv:virtual public Anmial{};
Class Luozi{};

6、文件:

C++里對(duì)文件操作,包含的頭文件#include。

文件分為兩種:

①文本文件:就是記事本; 以ASCII碼形式存在計(jì)算機(jī)中;

②二進(jìn)制文件:以二進(jìn)制的形式存在計(jì)算機(jī)中。

操作文件三大類(lèi):

①ofstream:寫(xiě)操作;

②ifstream:讀操作;

③fstream:讀寫(xiě)操作。

寫(xiě)文件:

創(chuàng)建文件輸出流對(duì)象:ofstream ofs;

打開(kāi)文件:ofs.open(“文件路徑”,打開(kāi)方式);

寫(xiě)數(shù)據(jù):ofs<<”寫(xiě)入數(shù)據(jù)”;

關(guān)閉文件:ofs.open();

文件打開(kāi)方式:

Ios::in:讀文件而打開(kāi)文件;

Ios::out:寫(xiě)文件而打開(kāi)文件;

Ios::ate:初始位置:文件尾;

Ios::app:追加方式寫(xiě)文件;

Ios::trunc:如果文件存在,先刪除,再創(chuàng)建;

Ios::binary:二進(jìn)制方式。

讀文件:(和寫(xiě)文件基本一致)

7、棧:(先進(jìn)后出)

(1)順序棧:

棧底指針:bottom,元素頂部指針:top; 記錄棧內(nèi)元素個(gè)數(shù)|top-bottom|+1。 如果bottom=top,表示???。

(2)鏈棧:

優(yōu)點(diǎn):便于多個(gè)棧共享存儲(chǔ)空間和提高效率,并且不存在棧滿上溢的情況。

8、隊(duì)列:(先進(jìn)先出)

隊(duì)頭:用來(lái)刪除數(shù)據(jù),頭指針front(隊(duì)頭元素前一個(gè)位置);

隊(duì)尾:用來(lái)插入數(shù)據(jù),尾指針rear(隊(duì)尾最后一個(gè)元素位置);

(1)循環(huán)隊(duì)列:環(huán)狀空間。 元素個(gè)數(shù)=rear(尾指針)-front(頭指針)

(a)rear-front>0,就是循環(huán)隊(duì)列元素個(gè)數(shù);

(b)rear-front<0,需要加上循環(huán)隊(duì)列的容量;

(c)rear-front=0,隊(duì)列為空或者滿。

(2)鏈?zhǔn)疥?duì)列:

頭指針指向隊(duì)頭結(jié)點(diǎn),尾指針指向隊(duì)尾結(jié)點(diǎn)。

隊(duì)空條件:front=rear=NULL。

循環(huán)隊(duì)列采用的是順序存儲(chǔ)結(jié)構(gòu);

一循環(huán)隊(duì)列Q(1:m),初始狀態(tài)為front=rear=m,經(jīng)過(guò)一些列操作后,front=30,rear=10.則,按照順序查找下,最壞比較次數(shù)為m-30+10+1=m-19個(gè)元素,比較次數(shù)為m-20。

9、new運(yùn)算符

new運(yùn)算符是在堆區(qū)創(chuàng)建數(shù)據(jù)由程序員手動(dòng)開(kāi)辟,手動(dòng)釋放。 **new返回的是該數(shù)據(jù)類(lèi)型的指針。 **

例如:int *p = new int(10);

釋放:delete p;

例如:int *p = new int[10];

釋放:delete []p;

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

    關(guān)注

    3

    文章

    4344

    瀏覽量

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

    關(guān)注

    1

    文章

    481

    瀏覽量

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

    關(guān)注

    22

    文章

    2114

    瀏覽量

    73775
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28441
  • CONST
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    8178
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C++之STL算法()

    C++之STL算法()
    的頭像 發(fā)表于 07-18 14:49 ?1092次閱讀
    <b class='flag-5'>C++</b>之STL算法(<b class='flag-5'>二</b>)

    【請(qǐng)教】如何進(jìn)階c++、學(xué)習(xí)avr

    我是新手,有c語(yǔ)言基礎(chǔ),單片機(jī)基礎(chǔ),想學(xué)習(xí)avr和c++以及vc++,請(qǐng)問(wèn)過(guò)來(lái)人和各路高手支招,如何繼續(xù)進(jìn)階學(xué)習(xí)?看書(shū)還是看視頻?有沒(méi)有好的書(shū)或者視頻推薦?(有孫鑫的mfc,但是現(xiàn)在還
    發(fā)表于 04-15 00:17

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

    有意學(xué)習(xí)C++的朋友,可以加QQ群383309549,完全公益,免費(fèi)授課,本群只接受沒(méi)有程序設(shè)計(jì)經(jīng)驗(yàn)、想學(xué)習(xí)C++程序設(shè)計(jì)的朋友喲??!{:1:}
    發(fā)表于 07-29 21: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)成一門(mén)新的語(yǔ)言學(xué)習(xí)(和
    發(fā)表于 10-08 03:46

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

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

    Linux C/C++ 學(xué)習(xí)路線相關(guān)資料下載

    一、秋招 Linux C/C++ offer 情況、Linux C/C++ 方向的一些思考三、計(jì)算機(jī)基礎(chǔ)知識(shí)的梳理四、
    發(fā)表于 11-11 06:36

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

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

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

      總是被同學(xué)們問(wèn)到,如何學(xué)習(xí)CC++才不茫然,才不是亂學(xué),想了一下,這里給出一個(gè)總的回復(fù)。   一家之言,歡迎拍磚哈。   1、可以考慮先學(xué)習(xí)
    發(fā)表于 09-10 11:42 ?1248次閱讀

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

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

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

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

    C++中類(lèi)的繼承訪問(wèn)級(jí)別學(xué)習(xí)總結(jié)(

    上一篇文章我們介紹了c++中類(lèi)的繼承學(xué)習(xí)總結(jié);今天我們繼續(xù)來(lái)分享c++中類(lèi)的繼承中的訪問(wèn)級(jí)別的學(xué)習(xí)總結(jié)。一、繼承中的訪問(wèn)級(jí)別學(xué)習(xí):1、子類(lèi)是
    的頭像 發(fā)表于 12-24 16:10 ?771次閱讀

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

    一、秋招 Linux C/C++ offer 情況、Linux C/C++ 方向的一些思考三、計(jì)算機(jī)基礎(chǔ)知識(shí)的梳理四、
    發(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++學(xué)習(xí)筆記c++的基本認(rèn)識(shí)

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

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

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

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

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