1.介紹一下stl,詳細說明stl如何實現vector。
答:stl 是 standard template libary 的,翻譯成中文叫做標準模版庫.
它是是容器,演算法和迭代器的集合.通過迭代器作為橋梁將容器和演算法
聯絡起來.容器是用來儲存資料的,演算法是用來運算元據的.容器是模版化
的資料集和,演算法是泛形化的資料操作.利用 stl 進行開發,可以減輕對 於動態記憶體的操作,利於程式開發和維護.
vector 是乙個動態的陣列,它的連續性其實是一種假象.vector 動態的 擴大容量的大小,是這樣來實現的.首先來申請乙個適合的儲存空間,將原 來的內容拷貝進新的儲存空間,再把舊的空間釋放掉.
2.指標和引用有什麼分別;如果傳引用比傳指標安全,為什麼?如果我使用常量指標難道不行嗎?
答: 指標和引用的區別:
(1) 引用必須初始化,指標無需.
(2) 引用經過編譯器的優化不占用儲存空間,
在 32 位機器下指標佔4個位元組.
(3) 引用和被引用的物件是同乙個物件,
指標內存放的是指向物件的位址.
(4) 指標可以改變所指的物件,
引用一經初始化就不可改變.
(5) 引用利於理解,指標容易混淆.
傳引用確實比傳指標安全,就如上面(4)所言指標可以改變指向.如果我們 為函式傳入陣列的首位址,而在函式內意外的修改了該首位址,可能會出 現意向不到的後果.
我使用常量指標難道不行.這樣是不行的,因為常量指標的指標的意識是
指標不可以改變指向,但是可以更改指標所指的內容.這樣也可能帶來意 想不到的後果.
如果非要指標的話,你可以這樣的定義 const int*const p = &a;
但是這樣的可讀性沒有引用好,因此建議使用引用.
3.引數傳遞有幾種方式;實現多型引數傳遞採用什麼方式,如果沒有使用某種方式原因是什麼;
4.建構函式可否是虛函式,為什麼?析構函式呢,可否是純虛的呢?
答:建構函式不可是虛函式,因為在構造裡面是需要明確的知道要構造什。
虛函式是不確定的,因此可能會帶來意想不到的後果。
析構函式可以是純虛的。雖然在語法上正確,但是在實際開發過程不應 該這樣宣告,因為基類的純虛函式不可以定義。因此如果類中有動態申 請的空間,這樣可能會造成記憶體洩漏。
5. 拷貝建構函式相關問題,深拷貝,淺拷貝,臨時物件等。
答: 深拷貝是將資源和指標全都拷貝,而淺拷貝僅僅拷貝指標。
如果拷貝拷貝建構函式是淺拷貝,程式可能造成對同一塊記憶體刪除兩 次的情況,這樣程式會崩潰。還有一種情況如果,指標改變了
指向將造成記憶體洩漏。
臨時物件的開銷比區域性物件要小,臨時物件不可以做左值。
6. 基類的有1個虛函式,子類還需要申明為virtual嗎?為什麼。
答: 不需要。因為編譯器會把它當作虛函式處理。
7. c++和c定義結構的分別是什麼。
答: c 中只有資料,而且都是公有的。
c++ 中有資料也有函式,預設的是私有的。
google收購摩托羅拉是摩托羅拉的噩夢的開始
看到了moto被裁員,程式設計師是重災區。被收購不但沒有給員工帶來福利,反而是噩夢的開始。這個事件告訴我們,不要準備在乙個公司準備幹一輩子,下乙個被裁員的就是你。摩托羅拉移動的裁員事件步入尾聲,中國區不少員工都開始在網路上抒寫 摩托羅拉畢業季 留下這最後的紀念。他們中的許多人將青春獻給了摩托羅拉,為...
摩托羅拉C 面試題
摩托羅拉c 面試題 最近經常在上 csdn看看,關注裡面各位程式設計師的blog,主要是c 方面的,畢竟可以了解一些有用的東西。找到的一二摩托羅拉的c 面試題,學習下。1.介紹一下stl,詳細說明stl如何實現vector。answer stl 標準模版庫,standard template lib...
摩托羅拉價值幾何
目 前摩托羅拉公司 motorola inc.正遊走在razr的刀尖之上 可是要想把它劈成幾瓣卻也 並非易事。有越來越多的跡象表明 隨著前期頗受歡迎的razr系列手機銷量銳減 這家電信裝置生產商可能正考慮進行分拆。這樣的舉措正合 行動型 股東卡爾 伊坎 carl icahn 的意 伊坎今年曾發起一場...