今天做試卷的時候,發現我對於友元和繼承有點混了。複習一下,對比總結一下
出現位置以及關鍵字:
友元只能在類的內部宣告 friend xx(xx可以是類,也可以是函式),繼承是在類宣告的開頭 class a:public b(a是派生類,b是基類)。
友元的宣告是在「母體」中,而繼承的宣告是在「子體」中。
作為友元的「子體」,是可以訪問「母體」的一切成員的,包括為派生類準備的protected。而派生類只能訪問基類的public和protected,依舊訪問不了私有的private。
友元是不可以繼承的。友元只是為「訪問」而做的方便之門。
發現一門語言的筆試真的挺**的。作為一門程式語言,能夠做出程式才是真的。為什麼要咬文嚼字的去用筆答呢。做了乙份試卷,還沒及格,我鬱悶了,尤其改錯題,要麼就發現n個錯誤(試卷可能印錯了),要麼就是我用乙個方法改沒問題,但答案是另外一種改法。反正挺鬱悶的。明天再好好深看看繼承部分。
通常乙個程式分幾個區域 1.全域性資料區,2 **區,3 堆區,4 棧區。 由new產生的動態資料存放在堆區,函式內部的自動變數存放在棧區,全域性變數和static動態變數存放在全域性資料區。new會有對應的delete來釋放記憶體,函式內部的自動變數會在函式結束後釋放記憶體。 由此我們可以想到乙個問題。當我們在函式,或者類呼叫結束後,不想釋放記憶體,那該怎麼辦呢。作用1,就用static來定義。這樣就避免了去釋放它。其實原理就是static定義的資料存放在全域性資料區。
還有幾個作用
2,應用在全域性變數,普通的全域性變數是跨越多個檔案的。加了static以後,就可以只在當前檔案中有用,其他的檔案不可訪問,從而可以再定義相同名字的變數。而且靜態全域性變數未初始化的情況下預設為0
靜態變數和普通變數的訪問許可權是一樣的。只不過存放的記憶體位置不同。不要被靜態全域性變數這個詞誘導。
類中的靜態資料成員
類中的靜態資料成員也很有意思。它並不資料任何乙個類的物件。它只屬於類,可以看成是類本身的乙個屬性。所以不可以在類的內部初始化。用「static 型別 名字」宣告,然後在類的外面去初始化。 「資料型別 類名::名字 =數值」。呼叫有兩種方法。 物件名.名字 或者 類名::名字。
類中的靜態成員函式
這個也挺爽。他與普通成員函式有乙個很大的不同,那就是沒有this指標。還是那個道理,他只屬於類,不屬於任何物件。所以說,它不能有this指標指向當前物件。因為這個原因,省去了this指標,所以節省了系統開銷,可以曾加程式效率。既然它不屬於任何物件,由此,我們又能得出乙個結論。 靜態成員函式不可以訪問非靜態資料成員和非靜態成員函式!他只能訪問靜態成員和函式 !
7 29程序管理學習日記
程序就是執行的程式,程式是二進位制檔案。但是程序並不僅僅是二進位制檔案,因為程序還包含了其他的資源,比如要占用記憶體,訊號,狀態核心資料等。父程序複製自己的位址空間 fork 建立乙個新的 子 程序結構。每個新程序分配乙個,唯一的程序 id pid 滿足跟蹤安全性之需。任何程序都可以建立子程序。所有...
C 學習日記
1611 3 李旗偉 2016年10月5日 連續5天總結 內容a.概括 a 運算子與表示式80 b 流程控制語句45 b.具體內容 在進行了對運算子與表示式的學習後,嘗試了簡單的資料輸入,但結果總是出人預料,自認為會成功的每次運算失敗,搞得我都快失去信心了,還好我知道凡事要堅持,只因心中有夢,才堅持...
C 學習日記
1611 3 李旗偉 2016年10月6日 連續6天總結 內容a.概括 a 程式的基本控制結構95 b 選擇結構60 b.具體內容 以昨天所學為基礎,今日了另乙個世界的學習 流程控制結構。今天,主要學習了程式的基本控制結構,對此已有了基本的認識,並且嘗試了輸入,也小有成績。此外,還對選擇結構進行了淺...