C++類和對象知識點整理一

C++類和對象知識點整理(1)
1、面向過程和麪向對象的區別
面向過程:
a.自頂向下,每一個過程可以看成函數,缺點是不易改動 b.面向過程編程採取的是時間換取空間的策略 
c.面向過程是分析解決問題的步驟,然後用函數把這些步驟一步一步實現,然後在使用的時候一一調用即可
面向對象:
a.面向對象是把構成問題的事物分成各個對象,容易修改,例如加入功能,如果是面向過程的設計,需要改動一連串的步驟,而面向對象只需要改動相應的對象。
b.面向對象內部同時含有面向過程


2、類:類是對象的抽象描述,對象是類的具體實現
與結構體一樣,類只是一種複雜數據類型的聲明,不佔用內存空間,所以在定義類時不能對成員變量進行初始化,因爲沒有地方存儲數據,只有在創建對象以後纔會給成員變量分配內存,之歌時候就可以賦值了。而對象是類這種數據類型的一個變量,或者說是通過類這種數據類型創建出來的一份實實在在的數劇,所以佔用內存空間


b.類的成員變量稱爲類的屬性(Property),將類的成員函數稱爲類的方法(Method)。在面向對象的編程語言中,經常把函數(Function)稱爲方法


3、
類是用戶自定義的類型,如果程序中要用到類,必須提前說明,或者使用已經存在的類(如標準數據庫中)Class是C++中新增的關鍵字,專門用來定義類,後面跟類的名稱,類名的首字母一般大寫,已和其他的標識符區分開,{}內部是類所包含的成員變量和成員函數,他們統稱爲類的成員


4、創建對象
假設現在定義好了Student類
Student liLei;//定義對象
Student allStu[100]//該語句創建了一個allStu數組。數組擁有100個元素,每一個
元素都是Student類型的對象


5、創建對象以後,可以使用點號.來訪問成員變量(Public)和成員函數,這和通過結構體變量來訪問它的成員類似。
Student stu;
stu.name = "小明";
stu.say();


6、使用對象指針
C語言中經典的指針在C++中仍然廣泛的使用,尤其是指向對象的指針,上面的代碼中創建的對象stu是在棧上分配的內存,需要使用&獲取它的地址:列如
Student stu;
Student *pStu = &stu;
pStu 是一個指針,它指向Student類型的數據
也就是通過Student創建出來的對象
當然,你也可以在堆上創建對象,這個時候就需要使用前面講到的new關鍵字,列如:Student* pStu = new Student


在棧上創建出來的對象都以一個名字,比如stu,使用指針指向她不是必須的,但是通過new創建出來的對象就不一樣了,它在堆上分配內存,沒有名字,只能得到一個指向他的指針,所以必須使用一個指針變量來接收這個指針,藉助指針來訪問它的成員變量或者是成員函數


棧內存是程序自動管理的,不能使用delete刪除在棧上創建的對象,堆內存是由程序員管理,對象使用完畢後可以通過delete刪除(在實際開發中,new和delete往往是成對出現的,以保證及時刪除不再使用的對象,防止無用內存堆積)


因此得到兩種創建對象的方式:一種是在棧上創建,形式和定義普通變量類似,另一種是在隊上創建,必須要用一個指針指向它,delete要刪除,防止內存泄漏

































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