20180311 日常學習記錄

梁朝偉啊發表於2018-03-11
C++部分 函式模板與類别範本(泛型程式設計)

如果函式模板一旦修改,需要重新進行一個編譯。

函式名相同,函式引數不相同,即為函式過載

g++ -s 1.cpp -o 1.s //將1.cpp檔案只是編譯成彙編檔案1.s檔案

函式模板的本質 是 c++編譯器的自動生成不同的函式

函式模板機制結論
編譯器並不是把函式模板處理成能夠處理任意類的函式
編譯器從函式模板通過具體型別產生不同的函式
編譯器會對函式模板進行兩次編譯
在宣告的地方對模板程式碼本身進行編譯;在呼叫的地方對引數替換後的程式碼進行編譯。

doc下檢視檔案目錄 dir命令 類似於 ls命令


//運算子過載的正規寫法
//過載 << 與 >> 只能通過友元函式實現,其他運算子的過載均瑤寫成成員函式的形式 同時切勿濫用友元函式

友元函式一定要慎用
友元函式是類的全域性函式,不是成員函式,不需要新增類的區域作用符 " ::"

用Static修飾的成員函式以及成員變數屬於整個類

1 優化Teacher類,屬性變成 char *pname 建構函式裡面 分配記憶體
2 解構函式 釋放pname指向的記憶體空間
3 避免淺拷貝 過載=重寫拷貝建構函式
4 在teacher類中增加<<
5 在模板陣列類中 存int char Teacher Teacher*

======>提前瞭解STL容器概念

cocos部分 飛機大戰專案

Place是為了方便你在設定動畫時實現更改精靈位置的,本質上就是setPosition。

因為你不能sprite->runAction(setPosition()), 所以你需要Place來實現這種情況。


cocos 場景切換特效集合

具體呼叫方法

local transition = cc.TransitionCrossFade:create(1,newScene);--時間,場景 local transition = cc.TransitionFade:create(1, newScene);--時間,場景 local transition = cc.TransitionFadeBL:create(1, newScene);--時間,場景 local transition = cc.TransitionFlipX:create(1, newScene);--時間,場景 local transition = cc.TransitionJumpZoom:create(3, newScene);--時間,場景 local transition = cc.TransitionMoveInB:create(2, newScene);--時間,場景 local transition = cc.TransitionPageTurn:create(2, newScene, true);--時間,場景, 翻頁方式 local transition = cc.TransitionProgressHorizontal:create(2, newScene);--時間,場景 local transition = cc.TransitionProgressRadialCCW:create(2, newScene);--時間,場景 local transition = cc.TransitionShrinkGrow:create(2, newScene);--時間,場景 local transition = cc.TransitionSlideInB:create(2, newScene);--時間,場景 local transition = cc.TransitionSplitCols:create(2, newScene);--時間,場景 local transition = cc.TransitionZoomFlipAngular:create(2, newScene);--時間,場景 cc.Director:getInstance():replaceScene(transition);