C++中面向對象的思想

   C++語言是C語言的拓展,C語言是面向過程的,C++在C的基礎上增加了面向對象的方法。

        所謂面向過程的編程思想,就是分析解決問題的步驟,將這些步驟用一個個函數實現,最後一個個調用。

        所謂面向對象的編程思想,就是將任何事物都看成一個對象,對象有各種屬性(attribute)和行爲(behavior),在解決問題的過程中,將系統分解,使之模塊化。

        相對於面向過程的思想,面向對象的思想更適用於大型系統的開發。

        面向對象的程序設計有四個主要特點:抽象、封裝、繼承、多態。

        抽象(abstract):就是將不同對象的共性歸納、集中。在C++中,類是對象的抽象,對象是類的實例(instance)。

        封裝(encapsulation):就是將對象的內部實現和外部行爲分隔開來,人們通過接口來進行外部控制,而不用關心內部細節。

        繼承(inheritance):在一個已存在的類的基礎上建立一個新的類,新的類具有它所繼承的類的全部特性,且可以增加一些新的特性。繼承可以說是面向對象的程序設計最重要的特點。它實現了軟件的可重用性(reuseability)。

        多態(polymorphism):當向不同的對象發送同一消息時,不同的對象在接收到消息後會產生不同的行爲。即,每個對象可以用自己的方法去響應共同的消息。函數的重載就是多態一個很好的例子。

        C++作爲一種面向對象的語言,所有內容都體現出了面向對象的思想。例如,定義一個整型變量int a,整型int就是一個類,變量a是這個類的一個對象,當這個對象被建立時,類的構造函數(constructor)被調用,用來初始化這個對象。C++的內置類型(built-in type)的默認構造函數不對對象進行初始化,所以定義int a後,a是沒有初始化的變量。而C++中的string和vector類型,它們的默認構造函數將對象初始化爲空,所以當定義string a後,a已被初始化,初始化爲的值爲空,即a是一個空的字符串。

        要注意初始化爲空和沒有初始化是兩個不同的概念,當沒有初始化時,輸出這個變量,變量的值是不定的,不同的編譯器會輸出不同的值,而初始化爲空以後,變量已經被初始化了,在不同的編譯器下,結果是一樣的。
       

The End

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