第10章 對象和類 編程
面向對象編程(OOP)的特性: 函數
面向過程: 首先要考慮遵循的步驟,而後再考慮如何表示這些數據 對象
面向對象:首先從用戶的角度考慮對象--描述對象所須要的數據以及描述用戶與數據交互所須要的操做。完成對接口的描述後,須要肯定如何實現接口和數據存貯。 繼承
能夠把成員函數放在私有部分中,不能直接從程序中調用這些函數,可是能夠從公有的方法中使用它們。 接口
一個類建立的對象,它們各自有本身的數據,可是共享本身所屬類的方法。因此類方法增長不會增長不會增長對象所佔有的內存。特別的,當類沒有成員變量時,對象的佔有的空間不是爲0,而是爲1. 內存
構造函數:當只有類沒有提供任何構造函數時候,編譯器纔給提供默認的構造函數。 原型
析構函數:若是建立的是靜態存儲對象,則析構函數在程序結束時自動調用。若是建立的是自動變量,則在代碼塊執行完時自動調用。若是對象是new建立的,則在使用delete釋放內存時,則析構函數才自動調用。當main函數結束時,因爲自動變量是存放在棧中,所以最後建立的變量將最早被刪除,析構函數也最早被調用。 編譯器
對象賦值a = b步驟: 先建立先建立一個新的和b同樣的臨時對象,而後再把b賦值爲a,隨後程序調用析構函數以清除對象b。所以效率不高。 編譯
一般,將類聲明文件分紅兩部分,這兩部分一般保存在不一樣的文件中。類聲明(包括函數原型的表示方法)應該放在頭文件中,定義函數的源代碼放在方法文件中。 面向對象編程