C C 求職面試總結 二

2021-09-18 03:36:55 字數 730 閱讀 2646

1. 拷貝構造函式呼叫的三種情形

<1> 函式傳參時使用物件進行值傳遞

<2> 函式直接返回某個類物件的值

<3>  使用乙個物件去初始化另乙個同類的物件,包括兩種方式:

部分**:

class test

test t;

test a(t);       //第一種方式

test b=t;        //第二種方式

2.拷貝建構函式的引數為什麼是引用型別?

假設拷貝建構函式為值傳遞,那麼當程式呼叫拷貝建構函式時,就符合上述1.<1>,此時就需要再次呼叫拷貝建構函式,如此迴圈下去會造成無限遞迴呼叫拷貝建構函式而發生棧溢位。故拷貝建構函式的引數必須是引用型別。而因為拷貝建構函式沒有返回值,所以不用擔心上述1.<2>引起無限遞迴呼叫。

3.什麼是棧溢位?通常什麼情況下會發生棧溢位?

編譯器會給程式的除錯執行預留指定大小的記憶體緩衝區,其中包含了堆區、棧區等等。一般從main函式開始,系統會在棧區給所有已呼叫未返回的函式開闢空間以確保函式的正常執行,函式執行結束後空間會自動**。當系統為函式執行開闢的總空間超過ide所允許的最大值而到了非棧的其他區域,這種情況就是棧溢位。

棧溢位是緩衝區溢位的一種,導致其發生的原因通常有三個:

<1> 遞迴呼叫函式過深

<2> 區域性變數所佔總記憶體過大

<3> 設定的棧空間過小

面試求職 IT面試常見問題總結

在面試之前多了解一些常見問題對面試的成功起到了很重要的作用,我把一些常見問題總結如下,希望對還在求職中的it人員有所幫助 面試之前請做好準備 1,簡單介紹一下您的情況?2,您怎樣描述自己?3,您為何要選擇我公司?4,您為了這次面試做了哪些準備工作?5,我們為什麼要僱傭您?6,為什麼您要應聘這個職位?...

c c 面試總結 查漏補缺(二)

答 c和c 中struct的主要區別是c中的struct不可以含有成員函式,而c 中的struct可以。c 中struct和class的主要區別在於預設的訪問許可權不同,struct預設為public,而class預設為private 其次,c 中的類具有成員保護功能,並且具有繼承,多型這類oo特點...

c c 面試總結(2)

4.深拷貝和淺拷貝 1 什麼時候會用到拷貝函式 乙個物件以值傳遞的方式傳入函式 就是作為入參 乙個物件以值傳遞的方式從函式返回 就是作為返回值 乙個物件需要通過另外乙個物件進行初始化 2 是否應該自定義拷貝函式 如果不自己定義拷貝函式,那麼編譯器會自動生成乙個預設的拷貝函式,這個拷貝函式就會完成物件...