自學C++學習筆記(每天更新你學習中沒有注意到的小重點)

前言:什麼是C++

C++是基於C語言而產生的,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型爲特點的基於對象的程序設計,還可以進行面向對象的程序設計。
C++

第一章:C++入門

1. 命名空間

爲了更好的避免在工作之中分模塊工作發生函數和變量的命名衝突,我們引入了命名空間的概念,一個命名空間就定義了一個新的作用域,命名空間中的所有內容都侷限於該命名空間之中,不會和其他變量或函數造成同名衝突。

  1. 命名空間的定義:定義命名空間,需要使用到namespace關鍵字,在後面跟上命名空間的名字,然後接一對{ },在大括號之中的內容即爲命名空間的成員。
//1. 普通的命名空間
namespace N1 // N1爲命名空間的名稱
{
// 命名空間中的內容,既可以定義變量,也可以定義函數
	int a;
	int Add(int left, int right)
	{
		return left + right;
	}
}


//2. 命名空間可以嵌套
namespace N2
{
	int a;
	int b;
	int Add(int left, int right)
	{
		return left + right;
	}
	namespace N3
	{
		int c;
		int d;
		int Sub(int left, int right)
		{
			return left - right;
		}
	}
}

//3. 同一個工程中允許存在多個相同名稱的命名空間,編譯器最後會合成同一個命名空間中。
// 相同的命名空間之中不能夠重複定義變量和函數
namespace N1
{
	int Mul(int left, int right)
	{
		return left * right;
	}
}

  1. 命名空間的使用方式
  • 命名空間+ :: + 成員也是比較推薦的一種方式N1 ::Mul(left,right)
  • 引入成員 using + 命名空間 + ::+ 成員 後面使用成員時,不需要加作用域,這樣也將會直接導致成員暴露在全局域之中,(如果全局域中有同名的成員,將會導致成員衝突using N2::a
  • 展開命名空間 using + 命名空間 命名空間中所有成員暴露在全局域中,和第二種方式一樣,需要注意的同上!using namespace N1

2. C++輸入&輸出

  1. 在編寫C++程序需要進行輸入輸出時:需要包含的頭文件
#include <iostream>
using namespace std;
  1. 輸入輸出的標準格式
    輸入:cin>>b>>a
    輸出:cout<<a<<b<<endl (endl換行符)
  • 不需要顯示指定輸入輸出變量的格式,比如整形,字符的%d %c。
  • 支持連續的輸入輸出
  1. 字符串和非字符串輸出
int a = 10 ;
char* p = "1234";
int* pa = &a;
std::cout << pa << std::endl; //非字符串指針輸出地址
std::cout << p << std::endl;  //字符串指針輸出內容

3. 缺省參數

  1. 缺省參數是聲明或定義函數時爲函數的參數指定的一個默認值。在調用該函數時,如果沒有指定實參則採用該默認值,否則使用指定的實參。
void TestFunc(int a = 0)
{
	cout<<a<<endl;
}
int main()
{
	TestFunc(); // 沒有傳參時,使用參數的默認值
	TestFunc(10); // 傳參時,使用指定的實參
}

  1. 缺省參數分類
    全缺省參數
void TestFunc(int a = 10, int b = 20, int c = 30)
{
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
}

半缺省參數

void TestFunc(int a, int b = 10, int c = 20)
{
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
}
  • 半缺省參數必須從右往左依次來給出,不能間隔的給
  • 缺省參數不能在函數聲明和定義之中同時出現。
  • 缺省值必須時常量或者是全局變量
  • C語言不支持
//a.h
void TestFunc(int a = 10);
// a.c
void TestFunc(int a = 20)
{

}
// 注意:如果聲明與定義位置同時出現,恰巧兩個位置提供的值不同,那編譯器就無法確定到底該用那個缺省值。

4. 函數重載

在這裏插入圖片描述

5. 引用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章