閱讀筆記---《C++語言程式設計》
記錄
- C++中物件所佔據的記憶體空間只是用於存放資料成員,函式成員不在每一個物件中儲存副本,每個函式的程式碼在記憶體中只佔據一份空間。同一個類的多個物件共享函式程式碼。
- 在關鍵字private後面宣告的就是本類的私有成員。如果私有成員緊接著類名稱,則關鍵字private可以省略。如果沒有訪問控制關鍵字,類中預設是private。
- C++類成員函式的預設引數的位置:
- 編譯器禁止在宣告和定義中同時定義預設引數值。
- 如果在宣告中定義了預設引數,則在定義中不能加預設引數
- 如果宣告時沒有定義預設引數,那麼在定義成員函式時可以定義預設引數值,但不推薦,應該避免
參考
[1] [C++] 類物件所佔記憶體空間分析和總結
[2] 如果私有成員緊接著類名稱,關鍵字private可以省略,如果沒有關鍵字,預設為什麼
[3] C/C++筆試系列--預設引數在哪指定?函式宣告還是定義?
相關推薦
閱讀筆記---《C++語言程式設計》
記錄 C++中物件所佔據的記憶體空間只是用於存放資料成員,函式成員不在每一個物件中儲存副本,每個函式的程式碼在記憶體中只佔據一份空間。同一個類的多個物件共享函式程式碼。 在關鍵字private後面宣告的就是本類的私有成員。如果私有成員緊接著類名稱,則關鍵字private可以省略。如果沒有訪問控制關
學習筆記-C語言1(程式設計入門)
C語言和C++是作為一名程式設計師必備技能,非科班出身的我對這些語言一直是一知半解,後來更是直接使用簡單易上手的python,matlab語言。今天終於開始系統的學習了C了,記錄一些學習筆記,方便後面檢視,如有不妥,還請幫忙指正。 1. 檔案開頭 檔案開頭要加入:# include<
清華大學《C++語言程式設計進階》線上課程筆記06---繼承、派生、多型性
類的繼承 保持已有類的特性而構造新類的過程稱為繼承; 實現設計與程式碼的重用. 在已有類的基礎上新增自己的特性而產生新類的過程稱為派生 當新的問題出現,原有程式無法解決(或不能完全解決)時,需要對原有程式進行改造 派生類的構成 吸收基類成員 預設情況下派生類包含了全部基
清華大學《C++語言程式設計基礎》線上課程筆記05---vector物件,物件的複製與移動,string類
vector 物件 C++標準庫中的一個類模板 封裝任何型別的動態陣列,自動建立和刪除。 陣列下標越界檢查。 將動態陣列封裝成類的知識點中封裝的ArrayOfPoints也提供了類似功能,但只適用於一種型別的陣列。 vector<元素型別> 陣列物件名(陣列長度
清華大學《C++語言程式設計基礎》線上課程筆記04---指標
指標 static int i; static int* ptr = &i; 此處的*表示ptr是指標型別(地址型別),用來存放目標資料的地址 其本身也有地址,所以又指向指標的指標; *前面的 int 代表其指向的資料型別是 int 型,從目標i的起始單元地址取 int 資料型別位元
清華大學《C++語言程式設計基礎》線上課程筆記03---資料的共享和保護&陣列
資料的共享和保護 物件的生存期 static型別的區域性變數,生存期在整個程式,區域性可見。 void example() { static a=1; int b=2 } 當呼叫完example函式後,b消亡,a仍然存在; 再次呼叫該函式時,a值不會再次被賦值,仍保持之前資料;
清華大學《C++語言程式設計基礎》線上課程筆記01
使用除法的注意事項 double b = 4.0 * 1/239.0; 因為整數相除結果取整,如果引數寫1/239,結果就都是0 浮點數注意事項 浮點數是近似儲存,所以不能直接比較兩個浮點數的大小, 可以比較差值小於10的多少負多少次方. 逗號運算子 a=3 * 5,a * 4
《C++語言程式設計基礎》之函式學習筆記
引用的開銷比較小,因為只是傳遞指標,相當於變數多個名字 int i,j; int &ri=i; //ri引用 賦值為i的 j=10; ri=j; //ri賦值為j, 由於ri是引用,所以i也賦值為j 相當於i=j,引用是可以作為形參的 函式一般情況是單向傳遞的
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記一:C語言概述
1.1 C語言的歷史 1.1.1 起源 C語言是美國貝爾實驗室的 Dennis Ritchie、Ken Thompson 等人為開發 UNIX 作業系統而於 1972 年設計的一種計算機程式語言。
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記三:C語言基本概念(2)
2.3 註釋 每一個程式都應該包含識別資訊,即程式名、編寫日期、作者、程式的用途以及其他相關資訊。C語言把這類資訊放在註釋(comment)中。 符號 /* 標記註釋的開始,而符號 */ 則標記註釋
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記四:C語言基本概念(3)
2.5 讀入輸入 為了獲取輸入,就要用到 scanf 函式。它是C函式庫中與 printf 相對應的函式。scanf 中的字母 f 和 printf 中的字母 f 含義相同,都是表示“格式化”的意思
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記五:C語言基本概念(4)
2.7 識別符號 在編寫程式時,需要對變數、函式、巨集和其他實體進行命名。這些名字稱為識別符號(identifier)。在C語言中,識別符號可以含有字母、數字和下劃線,但是必須以字母或者下劃線開頭。
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記六:C語言基本概念(5)
問與答 GCC 最初是 GNU C Compiler 的簡稱。現在指 GNU Compiler Collection,這是因為最新版本的 GCC 能夠編譯用 Ada、C、C++、Fortran、Ja
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記九:格式化輸入/輸出(2)
3.2 scanf 函式 就如同 printf 函式用特定的格式顯示輸出一樣,scanf 函式也根據特定的格式讀取輸入。像 printf 函式的格式串一樣,scanf 函式的格式串也可以包含普通字元
C語言學習筆記---C專家程式設計 什麼時候陣列和指標相同
什麼時候陣列和指標是相同的: 規則1:表示式中的陣列名(與申明不同)被編譯器當作指向該陣列第一個元素的指標 規則2:下標總是與指標的偏移量相同 規則3:在函式引數的宣告中,陣列名被編譯器當作指向該陣列第一個元素的指標 規則1的例外情況: 1、陣列作為sizeo
關於指標的筆記【1】【C語言程式設計-譚浩強】
指標是什麼? 一個 變數的地址稱為該變數的"指標"【將地址形象化的稱為“指標”】。(指標是什麼百度百科) 注意區分儲存單元的地址和內容這兩個概念的區別。 直接訪問:直接按變數名進行訪問,直接通過變數名訪問變數內容 間接訪問:將變數a的地址存放到另一個變數b中,然後通過變數b找到變數a的地址,從而訪問變數a
Qt文件閱讀筆記-C++與QML混合程式設計(QML畫餅狀圖)
這裡只點名一點: Qt Charts是利用Qt的圖形檢視框架(QGraphics)搞出來的,底層並不是用OPenGL,而QML卻與OPenGL的底層緊密關聯 執行截圖如下: 原始碼如下
C語言程式設計 學習筆記 動態記憶體分配(malloc)
如果輸入程式時,先告訴你個數,然後再輸入,要記錄每個資料(類似動態陣列) C99之前應該怎麼做呢? malloc()函式的作用就在此: int *a = (int*)malloc(n*sizeof(int)); malloc()函式的作用是向記憶體申請一個n*
C語言程式設計 學習筆記 連結串列
接可變陣列 但如果我們可以使用BLOCK,將其都拼接在一起,並不是用上面的方法複製貼上。每一個BLOCK會有一個單元指向的是下一個BLOCK的地址,這樣就不會有上述的問題了 所以對於一個單元,它裡面應該分成兩部分: 1.資料 2.下一個單元的地址(指標) 這樣指向的下一個資料結構也應是
c語言程式設計筆記
(一)知識點總結 1.c語言程式處理的資料分為常量和變數兩種基本形式,並且常量與變數的區別在於:程式執行的過程中,常量的值保持不變,變數的值則是可以變的 (常量分為整型常量,實型常量,字串常量,字元常量,列舉常量。整型常量指零在內的所有整數;用一個合法的識別符號表示一個變