Menu
Coddy logo textTech

名前空間とスコープ

CoddyのC++ジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 4/104。

namespace は関連するコードをまとめ、名前の競合を防ぎます。:: scope resolution 演算子は、namespace の inside にある項目にアクセスします。

namespace を作成する

namespace MathTools {
    int add(int a, int b) {
        return a + b;
    }
}

scope resolution を使用したアクセス ::

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名前空間には、coutcinstringendlなど、C++標準ライブラリのすべての機能が含まれています。

challenge icon

チャレンジ

中級

MathTools namespace 内に関数を作成します:

  • add(int a, int b):合計を返します
  • multiply(int a, int b):積を返します

MathTools.h で宣言し、MathTools.cpp で実装します。

自分で試してみよう

#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;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン

自分で練習してみよう: C++オンラインコンパイラ