C++學習筆記_1_ C++入門(1)
阿新 • • 發佈:2021-02-01
C++學習筆記(1)C++入門
目錄
前言
提示:這裡可以新增本文要記錄的大概內容:
從今天開始記錄自己學習C++的過程,並分享給大家,共同進步。
注:從0開始
一、名稱空間使用
一個名稱空間就定義了一個新的作用域,名稱空間中的所有內容都侷限於該名稱空間中。給出如下名稱空間:
using namespace std;
namespace N {
int a = 10;
int b = 20;
int Add(int left, int right)
{
return left + right;
}
int Sub(int left, int right)
{
return left - right;
}
}
int main()
{
printf("%d\n", a); // 該語句編譯出錯,無法識別a
return 0;
}
此時,需正確使用名稱空間,三種方法如下:
- 加名稱空間名稱及作用域限定符
int main()
{
printf("%d\n", N::a);
return 0;
}
- 使用using將名稱空間中成員引入
using N::b;
int main()
{
printf("%d\n", N::a);
printf("%d\n", b);
return 0;
}
- 使用using namespace 名稱空間名稱引入
using namespce N;
int main()
{
printf("%d\n", N::a);
printf("%d\n" , b);
Add(10, 20);
return 0;
}
二、C++輸入&輸出
新生嬰兒會以自己獨特的方式向這個嶄新的世界打招呼,C++剛出來後,也算是一個新事物,那C++是否也應該向這個美好的世界來聲問候呢?我們來看下C++是如何來實現問候的。
1.輸出hello world
程式碼如下:
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl;
return 0;
}
說明:
1.使用cout標準輸出(控制檯)和cin標準輸入(鍵盤)時,必須包含< iostream >標頭檔案以及std標準名稱空間。推薦使用+std的方式。
2.使用C++輸入輸出更方便,不需增加資料格式控制,如:整形–%d,字元–%c
2.輸出資料
程式碼如下:
#include<iostream>
//using namespace std;//c++庫所有東西都是放在std名稱空間中
int main()
{
//自動識別型別
//std::cout << "hello world\n"<<std::endl;
int i = 1;
double d = 1.11;
std::cout << "i = " << i << std::endl;
std::cout << "d = " << d << std::endl;
return 0;
}
結果:
3.輸入輸出資料
與賦值無關,通過cin從鍵盤輸入值,通過cout輸出,程式碼如下:
#include<iostream>
//常用的庫裡面一些物件或者型別可以展出來
//工程專案中通常比較推薦
using std::cout;
using std::endl;
int main()
{
int i = 1;
double d = 1.11;
std::cin >> i >> d;
std::cout << "i = " << i << std::endl;
std::cout << "d = " << d << std::endl;
return 0;
}
測試時輸入5,3.111,輸出結果如下:
三、預設引數
1.預設引數概念
預設引數是宣告或定義函式時為函式的引數指定一個預設值。在呼叫該函式時,如果沒有指定實參則採用該預設值,否則使用指定的實參。
用法如下:
void TestFunc(int a = 0) {
cout<<a<<endl; }
int main()
{
TestFunc(); // 沒有傳參時,使用引數的預設值
TestFunc(10); // 傳參時,使用指定的實參
}
2.預設引數分類
- 全預設引數
#include<iostream>
using namespace std;
void Func(int a = 10,int b = 10,int c = 30)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
}
- 半預設引數
void Func2(int a, int b, int c=20)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
}
測試程式碼如下:
int main()
{ //傳參必須從右往左依次傳參,不能間隔
Func();
Func(1);
Func(1,2);
Func(1,2,3);
//Func2(1);函式不接受一個引數,半預設b也要賦值
Func(1, 2);
Func2(1, 2, 3);
return 0;
}
測試結果如下:
四、過載
什麼是函式過載
函式過載是函式的一種特殊情況,C++允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函式的形參列表(引數個數 或 型別 或 順序)必須不同,常用來處理實現功能類似資料型別不同的問題
為什麼c語言不支援過載,C++支援過載?
因為C++過載函式,只要引數不同,修飾出來的名字就是不同的,那麼就不會衝突,連結時就可以找到。C++使用修飾後的名字去找,C不是。
C++入門筆記,如有錯誤請批評指出。