1.new和malloc的區別
2.過載函數(重定義),C++函數符號的生成規則
3.參照與指針的區別
4.inline函數的特點,與宏,普通函數,static修飾的函數的區別
5.C/C++的相互呼叫
6.const用法
(1)new關鍵字 malloc函數
(2)new系統計算大小 malloc程式設計師設計
(3)new返回值型別安全 malloc返回值型別不安全
(4)new還可以做初始化 malloc只開闢記憶體
(5)new[] 陣列個數 malloc總大小
(6)new 自由儲存區域 malloc堆
(7)記憶體申請失敗
new拋出bad_alloc malloc返回NULL
(8)new關鍵字可以過載 malloc不能過載 operator new 開闢記憶體
(1)同名(2)不同參數(3)同一作用域
C++的函數符號生成規則支援
函數返回值如果不同,不能構成過載
C++三大特徵: 封裝 繼承 多型
多型 靜多型:編譯確定函數呼叫
函數過載 模板
動多型: 執行確定函數呼叫
繼承和虛擬函式
重寫和重定義區別:
同名函數:
(1)過載 重定義
(2)隱藏
(3)覆蓋 重寫
參照就是起 別名
底層以指針的形式來實現的
參照的特點:(1)參照一定要初始化
(2)參照是不能改變的
(3)參照是不能取地址的數據
(4)參照變數只能使用所參照的記憶體單元
函數的呼叫點程式碼直接展開
特點:沒有開棧和清棧的開銷 效率高 本檔案可見
(1)inline函數和普通函數區別,就是特點
(2)inline函數和static修飾的函數的區別
inline函數程式碼直接展開;static g==>l
(3)inline函數和宏的區別
inline函數 編譯 安全檢查和型別檢查
宏 預編譯 沒有
Inline是一種更安全的宏
Inline缺點:
程式碼膨脹爲代價,以空間換時間的概念
建議:函數執行的開銷 > 函數開棧的開銷 建議用inline函數
特徵:
(1)inline 寫在.h
(2)Inline只在Release版本生效
(3)Inline只是給編譯器的一個建議 回圈 遞回
(4)Inline基於實現,不是基於宣告
(1)C++呼叫C
在C++中:
extern "C"
{
}
包含的程式碼以C語言的規則來進行處理
(2)C呼叫C++ C++程式碼允許修改和不允許修改兩個方面講
C:
const修飾的變數 常變數
編譯檢視常變數有沒有做左值,其他的處理方式和變數相同
C++:
const修飾的變數 常數
編譯把用到常數的地方替換成常數初始化的值
(1)常數一定要初始化
(2)常數不允許修改
(2.1)直接修改
(2.2)間接修改
C++ 中const的用法
(1)const變數
(1.1)全域性變數 const int gdata = 10;//l 本檔案可見
(1.2)區域性變數 const int ldata = 20;//常數 函數中
(1.3)成員變數 const int mdata = 20;//類中
(2)const類成員方法
常方法 type* const this
cosnt type* const this
常物件只能呼叫常方法