1. 在c++中,類的建構函式可以省略不寫,這時c++會為它自動建立乙個隱式預設建構函式(implicit default constructor);也可以由使用者定義帶引數的建構函式,建構函式也是乙個成員函式,他可以被過載;當乙個建構函式只有乙個引數,而且該引數又不是本類的const引用時,這種建構函式稱為轉換建構函式2. 與建構函式相反,當物件結束其生命週期,如物件所在的函式已呼叫完畢時,系統會自動執行析構函式。以c++語言為例:析構函式名也應與類名相同,只是在函式名前面加乙個位取反符~,例如~stud( ),以區別於建構函式。它不能帶任何引數,也沒有返回值(包括void型別)。只能有乙個析構函式,不能過載。如果使用者沒有編寫析構函式,編譯系統會自動生成乙個預設的析構函式(即使自定義了析構函式,編譯器也總是會為我們合成乙個析構函式,並且如果自定義了析構函式,編譯器在執行時會先呼叫自定義的析構函式再呼叫合成的析構函式),它也不進行任何操作。所以許多簡單的類中沒有用顯式的析構函式。
3. 靜態資料成員的使用方法和注意事項如下:
1、靜態資料成員在定義或說明時前面加關鍵字static。//靜態變數的定義
2、靜態成員初始化與一般資料成員初始化不同。靜態資料成員初始化的格式如下:
《資料型別》《類名》::《靜態資料成員名》=《值》 //靜態變數的初始化
這表明:
(1) 初始化在類體外進行,而前面不加static,(這點需要注意)以免與一般靜態變數或物件相混淆。
(2) 初始化時不加該成員的訪問許可權控制符private,public等。
(3) 初始化時使用作用域運算子來標明它所屬類,因此,靜態資料成員是類的成員,而不是物件的成員。
3、靜態資料成員是靜態儲存的,它是靜態生存期,必須對它進行初始化。
4、引用靜態資料成員時,採用如下格式:
《類名》::《靜態成員名》 //靜態變數的使用方式
如果靜態資料成員的訪問許可權允許的話(即public的成員),可在程式中,按上述格式來引用靜態資料成員。
5. 靜態成員函式的宣告也很簡單,就是在類的成員函式前加上static關鍵字即可,和靜態成員一樣,靜態成員函式也是屬於類的,它並不屬於任何物件,當呼叫靜態成員函式時應該使用類名和域運算子「∷」,當然也可以使用物件呼叫操作,但是這樣的操作並不意味著靜態成員函式屬於這個物件,它只是被這個物件共享而已,這樣也就決定了靜態成員函式中是不能訪問本類中的非靜態資料成員的,它是不能訪問非靜態資料成員的,在c++中靜態成員函式主要用來訪問靜態資料成員而不訪問非靜態資料成員
5.1
1.靜態成員函式不能呼叫非靜態成員函式,但是反過來是可以的
2.靜態成員函式沒有this指標,也就是說靜態成員函式不能使用修飾符(也就是函式後面的const關鍵字)
3.靜態成員函式的位址可用普通函式指標儲存,而普通成員函式位址需要用 類成員函式指標來儲存。
5.2總結:其實宣告為靜態,不論是靜態資料成員還是靜態成員函式,它們都是不依賴於物件而存在的,類在定義後並不分配儲存空間,而是在定義類的物件的時候才分配儲存空間,相反靜態的資料成員和靜態的成員函式是已經在記憶體中開闢了記憶體空間了,所以靜態資料成員可以獨立的訪問在任何類物件沒有建立起來都可以訪問,並且靜態成員函式不可以呼叫非靜態成員函式,因為非靜態成員函式只有在類物件建立以後才可以呼叫,相反則是可以的。
**載自
6. c++允許派生類中的成員與基類成員重名。在派生類中訪問重名成員時,遮蔽基類的同名成員。
7. 在沒有const限制的前提下,自己類的成員函式訪問自己的類的變數是允許的
除了建構函式初始化成員變數或私有變數是const修飾的時候,普通函式不能用初始化列表來賦值的,把賦值過程改到函式體裡就可以了
8.在私有繼承中,基類中所有物件對派生類的物件都是不可見的。
你笑起來真好看,像春天的花一樣
12. 虛函式有兩大作用:
(1)定義子類物件,並呼叫物件中未被子類覆蓋的基類函式a。同時在該函式a中,又呼叫了已被子類覆蓋的基類函式b。那此時將會呼叫基類中的函式b,可我們本該呼叫的是子類中的覆蓋函式b。虛函式即能解決這個問題。
13.14. 多型
多型性:具有不同功能的函式可以用同乙個函式名,這樣就可以用乙個函式名呼叫不同內容的函式
多型性分為兩種:靜態 動態
靜態多型性是通過函式的過載實現的,動態多型性是通過虛函式實現的
15. 友元
15.1 友元函式
友元函式是指某些雖然不是類成員函式卻能夠訪問類的所有成員的函式。類授予它的友元特別的訪問權,這樣該友元函式就能訪問到類中的所有成員。
15.2 友元類
關於友元類的注意事項:
(1) 友元關係不能被繼承。
(2) 友元關係是單向的,不具有交換性。若類b是類a的友元,類a不一定是類b的友元,要看在類中是否有相應的宣告。
(3) 友元關係不具有傳遞性。若類b是類a的友元,類c是b的友元,類c不一定是類a的友元,同樣要看類中是否有相應的申明。
15.3 友元成員函式
使類b中的成員函式成為類a的友元函式,這樣類b的該成員函式就可以訪問類a的所有成員了。
當用到友元成員函式時,需注意友元宣告和友元定義之間的相互依賴,在該例子中,類b必須先定義,否則類a就不能將乙個b的函式指定為友元。然而,只有在定義了類a之後,才能定義類b的該成員函式。更一般的講,必須先定義包含成員函式的類,才能將成員函式設為友元。另一方面,不必預先宣告類和非成員函式來將它們設為友元。
**載自
16. 動態聯編
什麼是聯編?
聯編是指乙個電腦程式自身彼此關聯的過程,在這個聯編過程中,需要確定程式中的操作呼叫(函式呼叫)與執行該操作(函式)的**段之間的對映關係;按照聯編所進行的階段不同,可分為靜態聯編和動態聯編;
定義: 編譯程式在編譯階段並不能確切知道將要呼叫的函式,只有在程式執行時才能確定將要呼叫的函式,為此要確切知道該呼叫的函式,要求聯編工作要在程式執行時進行,這種在程式執行時進行聯編工作被稱為動態聯編。
動態聯編必須包括以下方面:
(1)成員函式必須宣告為virtual
(2)如果基類中宣告了為虛函式,則派生類中不必再宣告。
呼叫方式:
通過物件的指標或引用呼叫成員函式;或通過成員函式呼叫,反之就無法實現動態聯編。
17. 析構函式不能被過載
18. 建構函式不可以是虛函式,析構函式可以
與Maxscript的二 三事
基於maxscript編寫3dsmax的工具相對較簡單,語言簡潔。但是在編寫過程中,也出現了一些無法解決的問題。比如現在我遇到的座標的問題 問題 利用maxscript編寫的匯出外掛程式,獲取物件座標時小數點後位數,距離越大越來小。描述 根本原因,官方解釋為 由於數字浮點計算的本質,距離過大或過小都...
關於刷機的二三事
準備工作 適用於你手機的,驅動 刷機軟體 三星使用的odin recovery 恢復工具 喜愛的rom 要刷的系統 為電腦安裝好手機驅動 將rom 一般為.zip格式 拷貝到手機的sd卡中,並將sd卡插入手機中 手機未開啟且未連線資料線的前提下,按下音量鍵下 home 電源,進入 挖煤模式 連線上資...
關於S公司的二三事
剛才提到這家s公司是地地道道,童叟無欺的美國公司。老闆在創業前是美國一大學教授,某日rp大爆發,跟自己的乙個同事創立這家公司。由於老闆是土財主出身,公司20多年來一直是cash為王的策略,沒有上市,算是私人公司。20多年營業額的增長率基本跟中國的gdp同步,手裡攢了無數現金,但不幸的是老闆是堅定的反...