當前位置:編程學習大全網 - 編程語言 - c++面向對象編程有哪些必須註意的點?

c++面向對象編程有哪些必須註意的點?

首先,宏觀:

C++被認為是由C、面向對象C++、模板C++和STL C++組成的語言聯邦。

沒有人可以向STL名稱空間添加任何東西。

不要輕易忽略編譯器的警告

在壹定程度上使用測試驅動的開發方法。

軟件實體(類、模塊、函數)應該是可擴展的,但不可修改的。

采用敏捷設計方法(個人和交互比流程和工具好,工作軟件比綜合文檔好,客戶合作比合同談判好,應對變化比遵循計劃好)。

定期交付工作軟件,交付間隔越短越好。

在整個項目開發過程中,業務人員和開發人員必須每天壹起工作。

圍繞有積極性的個人建立項目。

在團隊內部,更多的是面對面的交流。

提倡可持續發展速度。

使要構建的系統最簡單(不要設計不必要的功能,不要過度設計)

最好的架構、需求和設計來自自組織團隊。

每隔壹段時間,團隊會反思如何更有效地工作,然後相應地調整自己的行為。

結對編程是更好的選擇。

不能容忍重復代碼。

不斷重構代碼。

去玩策劃遊戲。

高級模塊不應該依賴於低級模塊。兩者都應該依靠抽象。

盡可能保證:抽象不應該依賴於細節,細節應該依賴於抽象(任何變量都不應該持有指向特定類的指針或引用;任何類都不應從具體類派生;任何方法都不應重寫已在其任何基類中實現的方法)

每個編程單元盡可能向用戶提供使用承諾,如資源回收保證、數據壹致性保證、無異常保證等。

盡可能的處理程序中所有可能的異常,盡可能的精細。(試試...接住)

應該允許程序優雅地退出:當出現意外問題時,應該自動生成轉儲文件。(使用SetUnhandledExceptionFilter調用MiniDumpWriteDump)

在編寫代碼之前,您應該設計類並構建每個類的文件。

用pragma替換h文件頭壹次

二、上課:

使界面易於正確使用,不易被誤用。

設計類就像設計類型。

將成員變量聲明為私有

盡量不要讓類支持隱式類型轉換。

友元函數是類接口的壹種表現形式,但能避免就避免。

避免使用句柄指向對象的內部組件。

小心使用內聯(內聯應該用於小函數,但是考慮到內聯函數無法調試,應該小心使用)

確保公共繼承顯示的是is-a關系(即Liskov替換原則,派生類總是可以替換基類)。

避免覆蓋繼承的名字(基類函數重載,派生不重載,則其他覆蓋;派生壹個重載的基類函數,然後基類函數重寫;變量也可以被覆蓋)

區分接口繼承和實現繼承(純接口(虛=0),接口+天真實現(虛=0+實現),接口+非虛實現,都是公有繼承,私有繼承都是為了繼承實現,不是接口)。

根據上壹篇文章,每當出現virtual時,盡量使其=0(成為虛擬基類)。

根據上面的文章,派生類不應該重寫非虛函數。

永遠不要重新定義繼承的默認參數值。

私有繼承的意思是繼承實現,是復合的,有-a邏輯。盡可能少地使用受保護的繼承。兩種繼承在設計層面完全沒有意義,只是實現層面的代碼復用。

所有獨立對象的大小必須不為零(空對象將被插入壹個字符)

壹個類只負責壹件事。

壹個類只提供壹個內聚的接口(用戶不應該依賴他們不使用的方法)

類內部的類型定義盡量放在公共的地方,否則不能作為返回值。

智能指針應該用於類中的所有主要屬性(或者在返回STL時應該使用move語義)。

類中所有的私有變量都以M為前綴,壹切都類似於私有仿函數,帶或後綴。

靜態成員初始化函數用靜態類代替,順便可以用壹個函子。

四個函數(構造函數、復制構造函數、賦值函數、析構函數)

如果有多態繼承系統,基類析構函數要盡量聲明為虛的。

如果類中有壹個新對象,並且該類負責刪除,則必須定義壹個復制構造函數和壹個賦值運算符。

如果不想用編譯器自動生成的函數,默認拒絕(私有聲明或者保護)。

不要讓異常從析構函數中逸出。C++不喜歡析構函數吐出異常。

永遠不要在構造函數或析構函數中調用虛函數(當然,其他函數也可以通過調用虛函數來實現有趣的模式,比如模板方法)

復制函數應該確保對象中的所有成員和基類部分都被復制。

不要用壹個復制函數實現另壹個復制函數(壹個是復制函數,壹個是復制賦值函數),而是把* * *相同的部分放在第三個獨立函數中。

三、功能:

嘗試將函數參數聲明為const。

此外,operator =返回對*this的引用,自賦值在operator =中處理

函數參數的構造順序是不確定的,所以不要在函數參數中進行new運算,或者用函數來表示多個函數參數(否則壹個異常,其他的可能就執行不了)。

嘗試傳遞常量引用,而不是傳遞值。

非成員、非友元函數具有良好的封裝和跨類型操作的能力,因此不需要局限於在必要時將所有函數放入類中的傳統規則。

如果所有參數都需要類型轉換,請使用非成員函數(通常是雙目運算符重載)來實現此目的。

每當需要檢索指針參數時,都需要檢查它是否為BULL。

分配程序比崩潰更好地維護程序的勉強工作;調試版本盡可能讓程序崩潰。

  • 上一篇:哪裏有小主持人培訓班
  • 下一篇:編程草
  • copyright 2024編程學習大全網