簡單的構造和析構函數 你能玩的轉嗎?

      今天去參加了c++考試,題不難,但是看程序寫結果全是和構造函數、析構函數有關的,平時我認爲我在這方面絕對沒有問題的,不就是一個構造函數麼,那有什麼難的,可是當我真正面對試題的時候,我才知道我下筆是那麼的猶豫,這也是許多人面試結果不理想的原因吧----平時忽略了基礎知識的積累,但是公司面試的時候就要看你對基礎知識的掌握程度。話不多說,先看看下面的例子:

      有經驗的人對這道題不會有太大的問題,就是考你對虛函數(包括虛析構函數),但是問題是人家不是有的時候給你少一句或者多一句,你沒有清楚就貿然下筆了,結果你肯定會後悔莫及。就那這個例子來說,首先人家肯定要求你解釋你的結果。還有可能人家會在基類(A)中添加一個成員變量,如 :char *pname;  在main()函數增加 B b2  = b1; 之類的,讓你去補充相應的構造函數或者你認爲需要增添的函數,你能順利寫下來嗎?(你可能要補充的有帶參構造函數,拷貝構造函數,賦值運算符重載)

      有一點我想和大家重溫一下:(如果你的類裏面有拷貝構造函數和賦值運算符重載)

    還有繼承與組合都有的時候調用構造函數的順序:

      不好意思,原題比這個要複雜,我一時記不起來了。無名對象也是常考的對象。很多時候用無名對象實例化另一個對象,往往不會調用兩次構造函數的。

         我只能記住這些啦,關於構造函數和析構函數的試題可能都大同小異,我們一定要花點時間去好好深入研究研究,別到時候在簡單問題上栽了跟頭!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章