C 中類設計中重要且容易忽視的問題

2021-04-13 01:04:32 字數 724 閱讀 9015

c++中類設計中重要且容易忽視的問題

大家考慮一下如下程式的輸出結果

#include

class baseclass

virtual void fun()

void test()};

class deriveclass:public baseclass};

int main()

可能很多人會得出如下的結果

結果1:

呼叫派生類函式fun

呼叫派生類函式fun

結果2:

呼叫基類函式fun

呼叫基類函式fun

很遺憾兩種結果都錯了!

正確的結果應該是:

呼叫基類函式fun

呼叫派生類函式fun

為什麼是這樣的結果,基類的建構函式如果呼叫虛函式的話只呼叫基類的函式,不可能呼叫派生類的函式。

為什麼這樣做呢?且看改動後的情況。

#include

class baseclass

virtual void fun()

void test()};

class deriveclass:public baseclass};

int main()

如果基類的構造函式呼叫的是派生類函式fun,這下可壞了,由於基類的先於派生類構造,派生類的n還沒有,而基類要給i賦值,顯然是荒謬的。所以這樣設計是不合理的。

希望這些小東西對大家有用。 

sql 乙個說起來都知道,工作中容易忽視的問題

1今天乙個大學同學問了我乙個問題,他說他想刪除表裡的一行資料。我覺得再簡單不過了。不過他使得是asp開發。我對asp接觸很少,所以有點犯怵,雖然不承認。看了他發來的 我沒發現有什麼問題。language vbscript codepage 936 option explicit dim userna...

BI 系統中容易被忽視的資料來源功能

使用者在選購 bi 解決方案的時候,常常會更關注介面環節的功能指標,比如美觀性 操作的流暢性 移動端支援等等。畢竟,bi 是要給業務人員使用的,這些看得見的內容一般不容易被遺漏。然而,有些與資料來源有關的後台功能點就可能被忽略掉。如果在專案實施時才發現就會非常麻煩,可能造成上線延遲,或者有些功能只能...

Android開發中容易被忽視的一些注意事項

一 謹慎選擇包名 包名 package name 就相當於一款應用在戶口本上登記的名字,是系統用來區分不同應用的字段。重複的包名會被認為是同一款應用,不能同時安裝在乙個系統裡。一般來說,包名建議使用網域名稱反序。比如豌豆莢的 網域名稱是 www.wandoujia.com,那麼豌豆莢的一系列 and...