那些年奇葩的面試題

2022-05-03 07:39:10 字數 1689 閱讀 3906

結構和類的區別

1.儲存型別:結構是值型別,儲存在棧上。類是引用型別,儲存在棧上和堆上,堆上儲存真實資料,棧上儲存儲存位址,修改乙個引用的值,另乙個相同的引用的值就會發生改變。

2.繼承性:類是可以繼承的,它可以繼承其他的類或者介面,也可以被繼承,並且,類的許多特性是通過繼承來展現的,要阻止類的繼承,必須顯示的宣告sealed。結構沒有繼承:它不能繼承另乙個結構或者類,也不能被繼承。也正因為如此,結構不能有抽象成員。雖然結構沒有明確的用sealed宣告,可是結構是隱式的。結構能夠繼承介面,方法和類繼承介面是一樣的

3.初始化:類可以在宣告的時候初始化,結構不能在申明的時候初始化(不能在結構中初始化字段),否則報錯。

4.建構函式:類和結構都有自己預設的建構函式。在類中,一旦我們編寫了帶引數建構函式,預設建構函式就不存在了。當我們要呼叫不帶引數的建構函式來初始化物件時,我們必須再自己編寫乙個不帶引數的建構函式。但是在結構中,始終存在乙個不帶引數的預設建構函式,並且,這個建構函式是不可替代的,不能重寫,也不能覆蓋,在結構中,我們只能編寫帶引數的建構函式,不能編寫不帶引數的建構函式

5.析構函式:類有析構函式,但是結構沒有析構函式

6.關鍵字:在類中可以使用但是在結構中限制使用的關鍵字有:abstract、sealed、protected;static關鍵字可以用在類名前面用來宣告靜態類,但是不能用在struct前面,不存在靜態結構

類用new來例項化物件,分配記憶體,需要使用new返回位址及分配空間,而結構用new是初始化,結構是值型別,申明時就已經分配記憶體了

獲得乙個函式在記憶體塊的前面還是後面

lua垃圾**機制?

簡單講解lua中的垃圾**機制 點選開啟鏈結

lua垃圾**機制 點選開啟鏈結

二個執行緒都有自己的鎖,訪問資料交叉鎖問題?

多個執行緒訪問同乙個物件時發生鎖死的反思 點選開啟鏈結

加互斥鎖synchronized,保證執行緒的原子性(多個執行緒訪問的物件的同乙個方法) 點選開啟鏈結

如何確保n個執行緒可以訪問n個資源同時又不導致死鎖? 點選開啟鏈結

在多執行緒程式設計中lock(string)隱藏的機關 點選開啟鏈結

lock不住的bug,神一般無解的bug(xx正由另一程序使用,因此該程序無法訪問該檔案) 點選開啟鏈結

#include #include #include using namespace std;

double g_test;

int temp;

bool g_brunning;

dword winapi thwriteproc1(lpvoid lparam)

return 0;

}dword winapi thwriteproc2(lpvoid lparam)

return 0;

}dword winapi threadproc(lpvoid lparam)

virtual void f()

};class b :public a

void f()

};class c :public b

void f()

};void main()

其實報錯了,輸出不了

你研究過stl的原始碼嗎?

你研究過lua的原始碼嗎?

你知道lua元表怎麼實現的嗎?

你為什麼從前端轉到後端?

你封裝過的最好的乙個功能?

你自己有實現過vector的功能嗎?

JS 面試題 奇葩說

1 console.log 怎麼列印有顏色的字型 2 15 5 的結果是?15 5 的結果是?3 1 1 結果是?4 function console.log x 結果是?console.log y 結果是?5 var arr1 1,2 arr2 1,2 arr3 arr1 1 arr1 arr2 ...

那些年我們遇到的c面試題

1.這是一道關於結構體對齊補齊的題 在32為ibm pc機上使用c語言,若有如下定義 structaa 則變數a所占用的位元組數和成員布局為 c char,s short,i int,x 填充位元組 a.9,cssssiiii b.10,cxssssiiii c.12,cxssssxxiiii d....

面試題的那些事(1)

測試樣例 1,2,3,2,2 5 返回 2 解題思路 採用陣地攻守的思想 第乙個數字作為第乙個士兵,守陣地 count 1 遇到相同元素,count 遇到不相同元素,即為敵人,同歸於盡,count 當遇到count為0的情況,又以新的i值作為守陣地的士兵,繼續下去,到最後還留在陣地上的士兵,有可能是...