Cpp Using

提供:yonewiki
2022年9月26日 (月) 10:59時点におけるYo-net (トーク | 投稿記録)による版 (ページの作成:「C++に戻る <table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> <tr> <td style="width:1px;"></td> <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++(Cpp) Using</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td> </tr> <…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

C++に戻る


本来の表記は「C++(Cpp) Using」です。この記事に付けられた題名はテンプレート:記事名の制約から不正確なものとなっています。

※このページではC++にのみ存在する機能として、記事タイトルがC++ Usingになっています。

using

namespace(名前空間)を使うと、関数名の呼び出しを明確にできますが、名前空間の指定を都度、実施するには関数名が長くなりすぎるため、usingを使って名前空間の指定を省略しようとするものです。usingには名前空間に対する2つの役割があります。

  1. ファイル単位で名前空間を省略
  2. プロジェクト全体で名前空間を省略

後者はグローバル変数のようにプロジェクトに含まれるすべてのファイルで名前空間が省略できるようになるので、あまり使わない方がよいですが、小さなプロジェクトで更新の必要が無いような学習用のプロジェクトなどでまとめて名前空間の指定を省略指定したい場合に用います。

ファイル単位で名前空間を省略する例

using TestCode;

int _tmain(int argc, _TCHAR* argv[])
{
  int nReturn = Function();//名前空間TestCodeのFunctionが定義されていれば、その定義を利用する。
  return 0;
}

プロジェクト全体で名前空間を省略する例

using namcespace TestCode;

int _tmain(int argc, _TCHAR* argv[])
{
  int nReturn = Function();//名前空間TestCodeのFunctionが定義されていれば、その定義を利用する。
                //但し、プロジェクトに含まれる全部のファイルでも同様の扱いとなる。
  return 0;
}

ヘッダファイル内でusingを利用すると、インクルードしたファイルでも有効になるため、コードを再利用する際にインクルードファイルの定義が優先され、柔軟な名前空間設定が出来なくなりますので、インクルードファイルでは使わない方がよいです。


C++に戻る