關於物件模型的幾個面試題(很基礎,但坑較多)

2021-07-30 06:02:30 字數 2615 閱讀 7617

可能是因為光是看書,關於看到的知識點也不會去深思各種各樣的場景去構造,導致遇到一些很基礎的問題都會犯二,寫此篇部落格,特警示自己:

學知識,最重要的是思考!!!

如果關於物件模型你還有那麼一點興趣,那麼可以繼續向下看,看看自己是否可以完全答對。。。

1.面試題(選擇題):

下面我貼出的是主要的**片,標頭檔案以及using namespace std;需要自行新增哦!

class a

virtual

void funtesta()

{}int _a;

};class b

virtual

void funtestb()

{}int _b;

};class c :public a, public b

int _c;

};void fun()

int main()

選項:

a pa、pb、pc的取值相同

b、 pc 和 pa不相同

c、pb和pc不相同

d、pc不等於pa,也不等於pb。

c類物件模型:

解析:在繼承體系中,當用乙個基類的指標或引用指向派生類物件時(賦值相容規則),這時會將派生類物件的位址偏移乙個合適偏移量,因為派生類物件也是乙個基類物件,實際也就是讓基類指標指向派生類中屬於基類的那部分。所以一般先繼承的那個類(基類)的指標和派生類的物件的位址相等。不知道你有沒有聽懂呢?(無奈臉)

2.問下列程式會輸出什麼?

1)a類和b類是兩個不相關的類

class a

void fun()

private :

int m_a;

int m_b;

};class b

void fun()

private :

int m_c;

};void fun()

int main()

a類和b類沒有關係,所以pb肯定呼叫的是b類的fun函式,但是pb又是被強制指向a類物件的,

那麼肯定會列印前a類物件前四個位元組的值,也就是1。(因為b類大小就是4個位元組)。

圖形解析如下:

2)b類公有繼承自a類時,程式會輸出什麼?

class a

void fun()

private :

int m_a;

int m_b;

};class b:public a

void fun()

private :

int m_c;

};void fun()

int main()

解析:pb仍然會去呼叫b類的fun函式,而b類的fun函式需要列印m_c的值,物件a中並沒有m_c,那塊空間未定義,所以程式最終輸出隨機值或者程式崩潰。

**如下:

3).b公有繼承自a,且將a中的fun函式定義為虛函式後

輸出結果為: 1 2

class a

virtual

void fun()//虛函式

private :

int m_a;

int m_b;

};class b:public a

void fun()//重寫

private :

int m_c;

};void fun()

int main()

物件模型:

4)b公有繼承自a,且a中的fun為普通函式,僅將b類fun函式定義為虛函式.

輸出什麼?——–>程式崩潰

class a

void fun()//普通函式

private :

int m_a;

int m_b;

};class b:public a

virtual

void fun()//虛函式

不知道你看完之後是什麼感受?你有沒有全部答對呢?如果全部答對了,那麼說明你對於繼承/多型理解的特別透徹了,希望你不要像我一樣慘~

關於資料庫的幾個面試題

儲存引擎主要有 1.myisam 2.innodb 後面三種不了解 3.memory,4.archive,5.federated 1.myisam 2.innodb innodb 底層儲存結構為b 樹,b樹的每個節點對應innodb的乙個page,page大小是固定的,其中非葉子節點只有鍵值,葉子節...

幾個SQL的面試題

1.解釋一下sql裡面的null 答案 null代表乙個unknown的值或者乙個不存在的值 2.如何用sql判斷乙個值是不是null?答案 可以用is null來判斷乙個值是不是null 3.所有包含null的計算表示式的返回結果都是null,這句話正確嗎?比如5 null返回null 答案 正確...

java面試題 有關於繼承的面試題

面試題 1,方法過載和方法重寫的區別?方法過載能否改變返回值型別?方法過載是在本類內方法的定義一樣,引數型別,引數個數不同,返回值型別不同 方法重寫是指子類的方法定義和父類的方法定義相同。其引數型別,引數個數,返回值型別都必須相同 方法過載能否改變返回值型別,因為與返回值無關。2,this與supe...