我們在設計類時應該注意的問題

      現在講程序設計,如果不知道OOP,那麼肯定會讓人笑掉大牙。但是我們天天講面向對象程序設計,天天講組件,到底我們對類的設計有多深的認識呢?很多人並不是很清楚。那我們在設計類的時候應該注意些什麼問題呢?以我的經驗來說我們大體有一些需要注意:

    1、我們需不需要一個類,或許我們只要一個全局函數來實現呢?是出於組件化考慮,還是出於效率考慮。

    2、我們的類需不需要一個虛構函數,或許我們的類太簡單了,把它做成一個接口會跟好呢。複雜的類,我們怎麼辦呢,要不要隱藏它們的內部工作方式。

    3、在創建類時,需不需要一個無參的構造函數?

    4、是不是每個構造函數都能初始化所有的數據成員?

    5、我們的類需要複製構造函數嗎?怎麼處理?如果類在構造函數內分配資源。則可能需要一個顯式的複製構造函數來管理資源。有析構函數(除了空的虛析構函數外)的類通常是用析構函數來釋放構造函數分配的資源,這通常也說明需要一個複製構造函數。

    6、我們的類需要一個賦值操作符嗎?如果需要複製構造函數,多半也會需要一個賦值操作符。如果不想用戶能夠設置類中的對象,就要把賦值操作符私有化。

    7、我們的賦值操作符能正確的工作嗎?

    8、記得在複製構造函數和賦值操作符的參數類型中加上const了嗎?

    9、記得適當地聲明成員函數爲const了嗎?

    10、我們的類需要一個析構函數嗎?考慮過vtable嗎?

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