2、掌握C++基本语法
1、C語言的結(jié)構(gòu)體沒有函數(shù),C++有,默認(rèn)為public,類的默認(rèn)為private
2、析構(gòu)函數(shù)時無參的,this指針底層的運行機制 P40有詳細(xì)講解
this指針是一個隱含的指針,它是指向?qū)ο蟊旧?#xff0c;代表了對象的地址
一個類所有的對象調(diào)用的成員函數(shù)都是同一代碼段。那么成員函數(shù)又是怎么識別屬于同一對象的數(shù)據(jù)成員呢?原來,在對象調(diào)用pt.output(10,10)時,成員函數(shù)除了接受2個實 參外,還接受到了一個對象s的地址。這個地址被一個隱含的形參this指針?biāo)@取,它等同于執(zhí)行this=&pt。所有對數(shù)據(jù)成員的訪問都隱含地被加上前綴this->。例如:x=0;等價于 this->x=0。VS中通常我們使用this來列出該類中的所有成員,提高編寫速度,減少錯誤
3、顯式調(diào)用父類的帶參數(shù)的構(gòu)造函數(shù),fish():animal(20,20)
4、C++對象的創(chuàng)建寫法和C#、java不同的,沒有new
5、子類對象創(chuàng)建的內(nèi)存模型? P49
6、重載:只在同一個類發(fā)生,兩個條件。
覆蓋:子類 virtual,參數(shù)什么都一樣,這里有個遲綁定技術(shù)
隱藏:a.沒有virtual的覆蓋,b.有virtual,但是參數(shù)列表不同
含有純虛函數(shù)的類叫做抽象類,類沒有abstract聲明,居然和Java不同
7、引用的應(yīng)用,c沒有引用這個概念
a.函數(shù)形參--避免實參占較大內(nèi)存時發(fā)生值復(fù)制
b.完成一些特殊的作用
8、宏的3種用途
a.避免重復(fù)定義 P60
b.#define R 10--增加程序的可閱讀性
c.#define max(a,b) ((a>b)?a:b) 預(yù)處理時max()會被((a>b)?a:b)代替,和內(nèi)聯(lián)函數(shù)有神似,相比函數(shù)調(diào)用,減少了系統(tǒng)什么堆棧之類清理的開銷,估計Linux的 ? ????? CURRENT宏也是這樣定義的。
9、通常把類的定義和函數(shù)原型的聲明放在頭文件.h中,把具體實現(xiàn)方向源文件.cpp中,一個類放在一個.h和.cpp中,這個思想和java比較像
10、包含頭文件用<>和""的區(qū)別,#include<iostream.h>是從系統(tǒng)目錄下開始搜索不搜索當(dāng)前目錄,#include "animal.h"從當(dāng)前目錄搜索,加快搜索速度,不知道情況下用"",因為在當(dāng)前目錄搜索不到,會到系統(tǒng)目錄搜索
11、C++函數(shù)調(diào)用最好先聲明
12、C++定義要分號,GCC編譯器最接近標(biāo)準(zhǔn)C++
13、算法分為數(shù)值算法和非數(shù)值算法,數(shù)值算法比較成熟,一般都實現(xiàn)了。非數(shù)值算法,我認(rèn)為是業(yè)務(wù)邏輯那些。
14、break--結(jié)束整個循環(huán),continue只結(jié)束本次循環(huán)。
15、編譯從上而下,內(nèi)置函數(shù)(inline function),適用規(guī)模小且被頻繁調(diào)用的函數(shù)
16、函數(shù)模板,可以和函數(shù)重載對比一下
17、用register聲明寄存器變量---頻繁使用的? 如12000次循環(huán)
18、內(nèi)部函數(shù)static和外部函數(shù)extern
19、程序編譯后已經(jīng)將變量轉(zhuǎn)換為變量的地址,對變量值的存取都是通過地址進行的
20、數(shù)組訪問,用下標(biāo)法和指針法。指針法占內(nèi)存小,運行速度快。
21、typedef的作用。。。。sizeof作用,查看一個對象所占的空間大小
22、C++編譯系統(tǒng)用一段空間來存放各個對象共同的函數(shù)代碼段,在調(diào)用各對象的函數(shù)時,都去調(diào)用這個共用的函數(shù)代碼。一個對象所占的空間大小只取決于該對象中數(shù)據(jù)成員所占的空間,而與成員函數(shù)無關(guān)。函數(shù)代碼是存儲在對象空間之外的。
23、注意虛函數(shù)和成員函數(shù)的區(qū)別。虛函數(shù)有虛函數(shù)表,而成員函數(shù)沒有。調(diào)用的時候只是從程序的某一個地方跳到另外一個地方去執(zhí)行
轉(zhuǎn)載于:https://www.cnblogs.com/chester/archive/2011/04/09/2010705.html
總結(jié)
以上是生活随笔為你收集整理的2、掌握C++基本语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj 3038 Children of
- 下一篇: [转]ToolTip在VC中的使用