C++ の概要 (クラスとオブジェクトについての簡単な説明)

1 つの名前空間

1-1 名前空間の定義

ネームスペースを定義するの目的は、識別子の名前と競合しないことです。ネームスペースでは、関数、変数、型を定義できます。

例: ここの rand と strlens は実際には関数です。名前空間では、グローバル スコープの rand 関数および strlens 関数との競合を回避できます。第 2 に、名前空間は定義内でネストすることもできます。

同時に、ネームスペースによって新しいスコープが定義されます。ネームスペース内のすべてはそのネームスペースに制限されます

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
namespace bit
{
	int rand = 10;
	int strlens = 20;
	int Add(int a, int b)
	{
		return a + b;
	}
	class bit
	{
		int Sub(int a = 4, int b = 5)
		{
			return b - a;
		};
		double _money;
		float  _lucky;
		int _life;
	namespace character
	{
		char* next;
		int people;
	}
}

1-2 ネームスペースの使用

方法 1: 名前空間名 + スコープ修飾子を追加する

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
namespace bit
{
	int rand = 10;
	int strlens = 20;
	int Add(int a, int b)
	{
		return a + b;
	}
	class bit
	{
		int Sub(int a = 4, int b = 5)
		{
			return b - a;
		};
		double _money;
		float  _lucky;
		int _life;
	}*p;
	namespace character
	{
		char* next;
		int people=10;
	}
}
int main()
{
	cout << bit::character::people<< endl;
	return 0;
}

方法 2: using を使用して名前空間のメンバーを導入する

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
namespace bit
{
	int rand = 10;
	int strlens = 20;
	int Add(int a, int b)
	{
		return a + b;
	}
	class bit
	{
		int Sub(int a = 4, int b = 5)
		{
			return b - a;
		};
		double _money;
		float  _lucky;
		int _life;
	}*p;
	namespace character
	{
		char* next;
		int people=10;
	}
}
using bit::Add;
int main()
{
	cout << Add(4,5)<< endl;
	return 0;
}

方法 3: using 名前空間を使用して名前空間を導入する

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
namespace bit
{
	int rand = 10;
	int strlens = 20;
	int Add(int a, int b)
	{
		return a + b;
	}
	class bit
	{
		int Sub(int a = 4, int b = 5)
		{
			return b - a;
		};
		double _money;
		float  _lucky;
		int _life;
	}*p;
	namespace character
	{
		char* next;
		int people=10;
	}
}
using namespace bit;
using namespace character;
int main()
{
	cout <<people << endl;
	return 0;
}

2 C++ の入出力

C++ の入力と出力は自動的に型を識別するため、非常に便利です。C のように出力の型を指定するために printf を必要としません。第二に、C++ にはヘッダー ファイルもインクルードする必要があります。入力ストリーム cout に必要なヘッダー ファイルおよび出力ストリーム cin は #include<iostream>、<< はストリーム挿入演算子、>> はストリーム抽出演算子、std は C++ 標準ライブラリの名前空間名、C++ は定義と実装を配置します。この名前空間の標準ライブラリの。

3 デフォルトパラメータ

呼び出される関数にはパラメーターを含めないか、パラメーターをデフォルトにすることができます。いくつかの例を次に示します。

void fun(int a = 10)
{
	cout << a << endl;
}
int main()
{
	fun(2);
	fun();
	return 0;
}

複数のパラメータがある場合、デフォルトは分離できず、デフォルトは右から左にのみ連続することができます。

int fun(int a = 10,int b=6,int c = 8)
{
	return a + b + c;
}
int main()
{
	cout << fun(2, 4) << endl;
	cout << fun(4, 4, 4) << endl;
	cout << fun(5) << endl;
	fun(5);
	return 0;
}

4 関数のオーバーロード

つまり、同じ関数名で異なるパラメーターの型を使用することができ、コンパイラは自動的に関数のパラメーターの型を識別し、それに応じて一致させます。

int fun(int a = 10,int b=6,int c = 8)
{
	return a + b + c;
}
void fun(char* p, char a, int b)
{
	cout << p << endl;
	cout << a << endl;
	cout << b << endl;
}
int main()
{
	char arr[15] = "I love China!";
	cout << fun(2, 4) << endl;
	fun(arr, 65, 4);
	return 0;
}

5 引用符

引用することは別名をとることにも相当し、たとえばあなたの名前にもニックネームとビッグネームがあります。

参照される変数は実際には変数そのものであり、構文上では、エイリアスと元の名前が同じ空間を共有することが参照されます。

しかし、基礎となるロジックは異なり、基礎となるロジックはポインタです。

int main()
{
	int a = 10;
	int& b = a;
	b = 100;
	cout << a << endl;
	
	return 0;
}

6 内联函数

インライン関数は、実際には空間を時間と交換する方法です。インライン関数は、関数スタック フレームを開くことなく、呼び出された場所で展開され、プログラムの実行効率が向上します。ただし、インライン関数の空間が関数が大きい場合、それは非常に困難になります。大きい場合、コンパイラーは自動的にそのインラインを定義解除します。

キーワード変更: インライン

次のアセンブリ コードは fun 関数のスタック フレームをまったく開いておらず、ただ呼び出されているだけであることがわかります。

おすすめ

転載: blog.csdn.net/2301_79811170/article/details/135001954