2012年8月30日18:54:35

1.strcpy()的具體實現函數

最好使用strncpy()代替strcpy()的使用,strncpy()的實現原理spa

 

2. 拷貝構造函數和賦值運算符、智能指針指針

2.一、淺拷貝的危險之出在於有可能致使內存的二次釋放從而形成異常,深拷貝則避免了這一狀況的發生。但「萬惡」的淺拷貝就無一點好處,而深拷貝就無一個缺點嗎? 


若是一個類裏面沒有指針類型的數據成員的話,徹底能夠用淺拷貝啊,這樣很方便,省去了寫一個拷貝構造函數 


2.2 在C++中須要時刻考慮這一隱晦的問題,在C#中有沒有一種機制可以避免或解決這類問題呢?正如C#的垃圾回收機制,避免了C\C++中「圈地不還」狀況的發生。 

code

C#不懂啦,但JAVA中好像也能夠自動回收那些用戶忘了回收的內存,避免內存的泄露。對象

例如,在一個類中,有一個指向一個Buffer的指針,因此咱們能夠說這個指針指向了一個資源(這個資源能夠是一塊保存數據的內存)。
淺拷貝,也就是按照比特一位一位地進行拷貝,是把一個類徹底同樣拷貝到另外一個類。這時就出現問題了:類內部的指針的值是同樣的,也就是說,兩個類的實例內部的指針指向了同一塊內存。當這兩個對象析構的時候,同一塊內存就會給析構兩次,固然會出現問題。
深拷貝,就是在這點上和淺拷貝不一樣的,也就是說,在拷貝的時候,深拷貝會提供一塊新的內存用來保存數據,並使新的對象的指針指向這塊內存,這兩個對象析構的時候,也就不會把同一塊內存析構兩次了。
通常,若是一個類的做者沒有提供一個拷貝函數,編譯器會自動提供一個拷貝函數,而這個拷貝函數就是淺拷貝。
 

3.多態的實現機制,虛函數的定義,重載,覆蓋,隱藏,基類和派生類虛函數繼承繼承


4.類的6中關聯關係接口

依賴,關聯(單向,雙向),聚合,組合,繼承,實現內存

5.接口重用和代碼的重用資源

 

6.public private,protected繼承 編譯器

公有繼承:派生類的對象能夠訪問基類中的公有成員,派生類的成員函數能夠訪問基類的保護和私有成員。

相關文章
相關標籤/搜索