从java到C++入门
C++基礎知識
- 前言
- 基礎
前言
當初為了趕一波互聯網熱潮自學了java,如今因為需要就從java轉向C++開發,于是就有了java到C++入門,每次的學習我都會記錄一下C++的學習歷程。
基礎
| 整型 | |
| short | 2 |
| int | 4 |
| long | 4 |
| long long | 8 |
| 浮點型 | |
| float | 4 |
| double | 8 |
| 字符型 | |
| char | 1 |
| 布爾類型 | |
| bool | 1 |
常數,用于記錄程序中不可改變的數據,C++有兩種定義方法:
1、#define 宏定義
2、const 修飾詞
數據輸入輸出:
1、cin>>變量 獲取鍵盤輸入
2、cout<<數據 輸出到控制臺
C++中的條件和循環語句就和java幾乎一樣
指針見C++靈魂->指針
結構體:屬于自定義數據類型,可以存儲不同的數據類型
程序運行前,編譯后:
1、代碼區存放CPU執行的機器指令 ,有共享和只讀特性。
2、全局區存放全局變量、靜態變量、字符串常量和const修飾的全局變量(全局常量)
程序運行之后:
1、棧區(編譯器自動分配釋放)存放局部變量和const修飾的局部變量(局部常量)
(1)不要返回局部變量的地址
(2)不要返回局部變量的引用
2、堆區(程序員分配釋放,否則程序結束后由系統釋放)
(1)由new關鍵字來將數據開辟到堆區新內存
(2)由delete關鍵字將內存地址釋放(釋放數據時delete[ ])
函數參數傳遞方法:
1、值傳遞:每次傳遞都會復制數據,會耗用內存;形參不會改變實參。
2、地址傳遞(指針),可以減少占用內存,但會可能會造成原數值的修改,可以在傳入時加上const防止修改數據的誤操作。
3、引用傳遞,可以簡化指針,和地址傳遞效果一樣,同樣可以在傳入時加上const防止修改數據的誤操作。
引用課程里的對于引用的本質講解
引用的注意事項:1、引用必須初始化;2、引用不可更改
C++函數的形參可以默認值【注:當其中一個形參有默認值,則該形參的右側參數都得有默認值;函數聲明和實現中只能寫一個】。
C++函數的占位參數,就是形參中只有數據類型,也可以設置默認值。
C++中struct和class的唯一區別就是struct的訪問權限默認是公有的,class則為私有。
對象的初始化及清理【即構造函數及構析函數】
1、當類對象被創建時,程序至少會自動創建三個構造函數【無參構造、有參構造及拷貝構造】。
2、類對象作為類成員被創建時,先調用對象成員的構造再調用類成員的構造,構析函數則相反。
this指針:this指針指向被調用的成員函數所屬的對象
1、解決名稱沖突
2、在類的非靜態成員函數中返回對象本身,即return *this;
空指針可以訪問成員函數
常對象【聲明對象前加const修飾符】只能調用常函數【成員函數后加const修飾符,常函數內不能修改成員屬性】
友元,即使函數或者類能訪問另一個類的私有變量
1、全局函數做友元:在該類中聲明全局函數,并且在前面加上friend
2、類做友元:在該類中聲明要訪問的類,并且在前面加上friend
3、成員函數做友元:在該類中聲明成員函數,并且在前面加上friend
繼承:
1、先調用父類構造函數再調用子類構造函數,構析函數則相反。
2、子類調用父類中的同名成員(變量、函數),需要加作用域;調用子類本身中的時,正常調用。
3、C++中允許多繼承
字符數組可以初始化直接賦值,但是不能聲明后再直接賦值,但可以用strcpy()函數,如:
總結
以上是生活随笔為你收集整理的从java到C++入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql简单创建数据库权限(待修改备注
- 下一篇: C++ function bind以及l