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