名前空間付きの標準ライブラリを使うためには、次のようにヘッダをインクルードします。
たとえば名前空間付きの stdio.h と iostream.h をインクルードする場合は次のようにします。
#include <cstdio> #include <iostream>
このようにしてインクルードした関数やクラスは std という名前空間を伴ってアクセスすることができます。
#include <cstdio> #include <iostream> int main(int argc, char *argv[]) { std::printf("てすとん"); std::cout <<"てすとん" <<std::endl; return 0; }
なお、 using namespace を使うことで、そのスコープに限り名前空間を省略することができるようになります。
#include <cstdio> #include <iostream> int main(int argc, char *argv[]) { { using namespace std; printf("てすとん"); // OK } cout <<"てすとん" <<endl; // エラー!このスコープに using namespace が無い return 0; }
これらはもちろん、シンボルが衝突しないための仕組みなのですが、私は現在までに標準関数と名前がぶつかったことは JavaScript を使っていたときの1度しかありません。恵まれているのかも。
Contributions