C++面經總結

C++面經總結

基本語言一

1.static關鍵字的作用

全局靜態變量
局部靜態變量
靜態函數
類的靜態成員
類的靜態函數
具體
1.修改作用域,由external改爲internal
2.修改標識符的存儲類型,由自動變量改爲靜態變量。
3.只能在定義它的源文件中使用,不能在其他源文件使用。
4.對於被static修飾的類成員變量和成員函數。他們是屬於類的,而不是屬於某個對象的。

2.說一說c++中四種cast轉換

1.const_cast:用於將const變量轉爲非const
2.static_cast:相當於傳統的C語言裏的強制轉換,該運算符把expression轉換爲new_type類型,用來強迫隱式轉換。用於類層次結構中基類(父類)和派生類(子類)之間指針或引用的轉換。基本數據類型之間的轉換。
dynamic_cast:主要用於類層次間的上行轉換和下行轉換(把派生類的指針或引用轉換成基類表示,稱之爲上行轉換。反之),還可以用於類之間的交叉轉換。
reinterpret_cast:它可以把一個指針轉換成一個整數,也可以把一個整數轉換成一個指針。

3.請說一下C/C++ 中指針和引用的區別?

1.指針是一個變量,只不過這個變量存儲的是一個地址,指向內存的一個存儲單元;而引用跟原來的變量實質上是同一個東西,只不過是原變量的一個別名而已。
2.引用不可以爲空,當被創建的時候,必須初始化,而指針可以是空值,可以在任何時候被初始化。
3.可以有const指針,但是沒有const引用;
4.指針可以有多級,但是引用只能是一級
5.指針的值在初始化後可以改變,即指向其它的存儲單元,而引用在進行初始化後就不會再改變了。
6.sizeof引用”得到的是所指向的變量(對象)的大小,而”sizeof指針”得到的是指針本身的大小;
7.sizeof引用”得到的是所指向的變量(對象)的大小
8.如果返回動態內存分配的對象或者內存,必須使用指針,引用可能引起內存泄漏(指程序中己動態分配的堆內存由於某種原因程序未釋放或無法釋放,造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等嚴重後果);

4.說一下C++中的智能指針

答案:C++裏面的四個智能指針: auto_ptr, shared_ptr, weak_ptr, unique_ptr
智能指針的作用:管理一個指針
因爲存在:申請的空間在函數結束時忘記釋放。造成內存泄露
作用原理:智能指針作爲一個類,當出現情況時,自動調用析構函數,析構函數會自動釋放內存空間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章