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;
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4344瀏覽量
62861 -
指針
+關(guān)注
關(guān)注
1文章
481瀏覽量
70593 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73775 -
變量
+關(guān)注
關(guān)注
0文章
613瀏覽量
28441 -
CONST
+關(guān)注
關(guān)注
0文章
45瀏覽量
8178
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論