Cocos2d-x遊戲開發面試題總結c++
C++部分:面試
1.c與c++有什麼不用之處?數組
C和c++最主要的區別在於它們解決問題的思想方法不同,c解決問題的方法,主要是經過一個過程,對輸入進行運算處理獲得輸出,而對於c++,解決問題的思想主要是構造一個對象模型,讓這個模型可以契合與之對應的問題域.這樣就能夠經過獲取對象的狀態信息獲得輸出.總的來講就是c++在c的基礎上拓展了面向對象的內容,如類/虛函數/繼承/模板等等.安全
2.c++有什麼特色?數據結構
A.c++是c語言的超集。它即保持了c語言的簡潔、高效、和接近彙編語言等特色,又克服了c語言的缺點,其編譯系統能檢查更多的語法錯誤,所以c++比c語言更安全。函數
B.c++保持了與c語言的兼容。絕大多數c語言程序能夠不經修改直接再c++環境中運行,用c語言編寫的衆多庫函數能夠用於c++程序中。工具
C.支持面向對象程序設計的特徵。C++即支持面向對象的程序設計,又支持面向對象的程序設計命令行
D.c++程序在可重用性、可擴展性、可維護性和可靠性等方面都較c語言獲得了提升,使其更適合開發大中型的系統軟件和應用程序。設計
E.c++設計成靜態類型、和c一樣高效且可移植的多用途程序設計語言。指針
F.c++設計成儘量與c兼容,藉此提供一個從c到c++的平滑過渡。
3.你怎麼理解c++的函數模板?
所謂函數模板,實際上就是創建一個通用的函數,其函數類型和形參類型不具體指定,用一個虛擬的類型來表明,這個通用的函數就稱爲模板函數,凡是函數體相同的函數均可以用這個模板來代替,沒必要定義多個函數,只需再模板中定義一次便可,在調用函數時系統會根據實參的類型來取代模板中的虛擬類型,從而實現了不一樣函數的功能。
4.你如何理解c++的指針?
本質上講指針也是一種變量,普通的變量包含的是實際的數據,而指針變量包含的是內存中的一塊地址,這塊地址指向某個變量或者函數,指針就是地址,指針就是一個指示器,它告訴程序在內存的那一塊區域能夠找到數據。
指針的內容主要包括4部分:指針的類型、指針指向的類型、指針的值、指針自己所佔有的內存區,例如:Int* p;p就表示一個指針,指針的類型是int*,指針指向的類型是int,指針的值是指指針所指向的內存區域的地址,就是指針自己存儲的數值。指針自己所佔有的內存區是指針自己佔內存的大小,在32位的平臺裏,指針自己佔據了4個字節的長度。
5.在什麼狀況下會用獲得指針?
A.當你須要獲取地址時,必須使用指針。
B.當在傳遞參數時,多數要使用指針
C.使用new關鍵字建立的內存必須使用一個指針指向操做
D.在使用鏈表時,須要使用指針。
6.使用指針有什麼好處?
A.指針能夠申請不連續的數據存儲空間,而數組是連續的,若是數組空間沒有所有佔用,就會形成浪費,可是指針就不會這樣,由於它是用多少就申請多少。
B.使用指針還能夠建立數據結構,如鏈表、二叉樹,來進行一些快速查找、快速刪除的操做。
7.什麼是面向對象?
對同類的事物抽象出相同的部分,造成類。類中的大多數數據只能用本類的方法進行處理,類經過一個簡單的外部接口與外界發生關係,對象與對象之間經過消息進行通訊。
8.引用和指針的區別?
A.指針是一個變量,只不過這個變量存儲的是一個地址,指向內存中的一個存儲單元;而引用跟原來的變量實質上是一個東西,只不過是原變量的一個別名而已,
B.能夠有const指針,可是沒有const引用。
C.指針能夠有多級,可是引用智能有一級。
D.指針的值能夠爲空,可是引用的值不能爲空,而且引用在定義的時候必須初始化。
E.指針的值在進行了初始化後還能夠改變,使其指向其餘的存儲單元,而引用在初始化後就不會改變了。
F.聲明一個引用,不是新定義一個變量,他只表示該引用名是目標變量名的一個別名,它自己不是一種數據類型,所以引用自己不佔存儲空間,系統也不給引用分配存儲單元。因此,當sizeof(引用)的時候,實際上求得是所指向的變量的大小,而sizeof(指針)的時候,求的則是指針自己的大小。
G.指針和引用的自增(++)運算意義不同
Cocos2d-x部分:
10. 添加了一些新的UI空間。如:bullet、layout、pageView、ScrollView、Silder。
11. 雖然3.0有不少新的接口。但老的接口任可使用。只是會註明已廢棄。
12. Release和autorelease有什麼區別?
13. C++新特性: