名前空間とスコープ
CoddyのC++ジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 4/104。
名前空間は、関連するコードをグループ化し、名前の衝突を防ぎます。:: スコープ解決演算子は、名前空間内のアイテムにアクセスするために使用されます。
名前空間の作成
namespace MathTools {
int add(int a, int b) {
return a + b;
}
}スコープ解決演算子 :: によるアクセス
int result = MathTools::add(5, 3); // result = 8毎回名前空間を入力するのを避けるために、usingディレクティブを使用します
using namespace MathTools;
int result = add(5, 3); // MathTools::add(5, 3) と同じですstd 名前空間
std::cout << "Hello" << std::endl;
// または
using namespace std;
cout << "Hello" << endl;名前空間はコードを整理し、名前の衝突を防ぎます。std 名前空間には、cout、cin、string、endl などのすべての C++ 標準ライブラリの機能が含まれています。
チャレンジ
中級MathTools名前空間内に関数を作成してください:
add(int a, int b)— 和を返しますmultiply(int a, int b)— 積を返します
これらをMathTools.hで宣言し、MathTools.cppで実装してください。
チートシート
名前空間は、関連するコードをグループ化し、名前の衝突を防ぎます。スコープ解決演算子 :: は、名前空間内の項目にアクセスするために使用されます。
名前空間の作成:
namespace MathTools {
int add(int a, int b) {
return a + b;
}
}スコープ解決 :: を使用したアクセス:
int result = MathTools::add(5, 3); // result = 8毎回名前空間を入力するのを避けるための using ディレクティブの使用:
using namespace MathTools;
int result = add(5, 3); // MathTools::add(5, 3) と同じstd 名前空間には、cout、cin、string、および endl のようなすべての C++ 標準ライブラリ機能が含まれています:
std::cout << "Hello" << std::endl;
// または
using namespace std;
cout << "Hello" << endl;自分で試してみよう
#include <iostream>
#include "MathTools.h"
int main() {
int a, b;
std::cin >> a >> b;
std::cout << "Add: " << MathTools::add(a, b) << std::endl;
std::cout << "Multiply: " << MathTools::multiply(a, b) << std::endl;
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
3コンストラクタとデストラクタ
デフォルトコンストラクタ引数付きコンストラクタコピーコンストラクタムーブコンストラクタコンストラクタ初期化リスト委譲コンストラクタデストラクタ詳解Rule of Three / Five / Zeroまとめ - Stringクラス6演算子オーバーロード
演算子オーバーロード入門算術演算子のオーバーロード比較演算子のオーバーロードストリーム演算子代入演算子のオーバーロード[] と () 演算子のオーバーロード型変換演算子まとめ:Matrix クラス