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...