C++ 類與物件
- C++ 入門
- C++關鍵字
- C++特性
- 預設引數
- 函式多載
- 函式多載原因
- extern "c"
- 參考
- 參考傳參
- 參考和指標的對比
C++ 入門
C++關鍵字
c++是包容c的,也包容c的所有關鍵字,c有32個關鍵字,c++有63個關鍵字,下面分類列出,

關鍵字功能與特性,我們會在后面詳細解讀
C++特性
-
命名空間
在C/C++中,變數、函式和后面要學到的類都是大量存在的,這些變數、函式和類的名稱將都存在于全域作用域中,可能會導致很多沖突,使用命名空間的目的是對識別符號的名稱進行本地化,以避免命名沖突或名字污染,namespace關鍵字的出現就是針對這種問題的,

-
命名空間的使用
- 加命名空間名稱及作用域限定符
int main()
{
n::i = 9;
printf("%d", n::i);
return 0;
}
- 使用using將命名空間中成員引入
using n::i;
int main()
{
printf("%d", n::i);
return 0;
}
使用using namespace 命名空間名稱引入
using namespace n;
int main()
{
printf("%d\n", n::i);
printf("%d\n", k);
return 0;
}
- c++ 的輸入和輸出
#include<iostream>
using namespace std;
int main()
{
cout << "Hello world!!!" << endl;
return 0;
}
說明:
- 使用cout標準輸出(控制臺)和cin標準輸入(鍵盤)時,必須包含< iostream >頭檔案以及std標準命名空
間,
注意:早期標準庫將所有功能在全域域中實作,宣告在.h后綴的頭檔案中,使用時只需包含對應頭檔案即可,后來將其實作在std命名空間下,為了和C頭檔案區分,也為了正確使用命名空間,規定C++頭檔案不帶.h;舊編譯器(vc 6.0)中還支持<iostream.h>格式,后續編譯器已不支持,因此推薦使用+std的方式, - 使用C++輸入輸出更方便,不需增加資料格式控制,比如:整形–%d,字符–%c

注意 : cin指向變數 輸入,cout列印變數,指向cout,
預設引數
- 預設就是默認,默認引數就是恢復出廠設定吧,預設引數是宣告或定義函式時為函式的引數指定一個默認值,在呼叫該函式時,如果沒有指定實參則采用該默認值,否則使用指定的實參,
int stradd(int a = 9)//默認設定為a=9 當不傳參時則為9
{
return a * a;
}
- 預設引數的分類

注意: 預設引數不能在函式的定義和命名中同時出現,否則編譯器無法識別,預設值必須是常量或者全域變數,
函式多載
函式多載:是函式的一種特殊情況,C++允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函式的形參串列(引數個數 或 型別 或 順序)必須不同,常用來處理實作功能類似資料型別不同的問題
int Add(int left, int right)
{
return left + right;
}
double Add(double left, double right)
{
return left + right;
}
long Add(long left, long right)
{
return left + right;
}
int main()
{
Add(10, 20);
Add(10.0, 20.0);
Add(10L, 20L);
return 0;
}
注意 :
- 函式名稱必須相同,
- 引數串列必須不同(個數不同、型別不同、引數排列順序不同等),
- 函式的回傳型別可以相同也可以不相同,
- 僅僅回傳型別不同不足以成為函式的多載
- 反回型別和是否多載無關
例如

另外 函式多載有且只有一個 同樣變數的預設引數
例如
雖然構成了 多載 但預設引數出現了問題 一樣不能多載,
函式多載原因
語言沒辦法支持多載,因為同名函式沒辦法區分,而C++是通過函式修飾規則來區分,只要引數不同,修飾出來的名字就不一樣,就支持了多載,
extern “c”
在實際中 我們經常c和c++同時使用 然后c++和c的函式名修飾規則又不一樣,就需要使用extern c ,在函式前加extern “c” 表示函式使用c的規則,那么函式就不支持多載,

注意:
c++ 默認浮點數為double型別 要傳入float需要后面加f
參考
參考不是新定義一個變數,而是給已存在變數取了一個別名,編譯器不會為參考變數開辟記憶體空間,它和它參考的變數共用同一塊記憶體空間,

可以看到 b作為a的別名 和a是等效的,
注意:
- 參考在定義時必須初始化
- 一個變數可以有多個參考
- 參考一旦參考一個物體,再不能參考其他物體
- 參考型別和被參考物體為同一型別
參考傳參

注:
-
因為 a和b分別是x和y的別名 所以x和y在swap做個函式堆疊楨中相當于a和b的別名,
-
多載的錯誤 int&和int 不構成多載

參考和指標的對比
- 參考在定義時必須初始化,指標沒有要求
- 參考在初始化時參考一個物體后,就不能再參考其他物體,而指標可以在任何時候指向任何一個同型別
物體 - 沒有NULL參考,但有NULL指標
- 在sizeof中含義不同:參考結果為參考型別的大小,但指標始終是地址空間所占位元組個數(32位平臺下占
4個位元組) - 參考自加即參考的物體增加1,指標自加即指標向后偏移一個型別的大小
- 有多級指標,但是沒有多級參考
- 訪問物體方式不同,指標需要顯式解參考,參考編譯器自己處理
- 參考比指標使用起來相對更安全
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/293393.html
標籤:其他
