1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

名前空間を書いてみた。

Last updated at Posted at 2012-02-16

コメントとか文字化けするんだが、どうすればいいか?
Qiitaを使う際に特殊な記号とかあるのか?「#」はタイトルとか
htmlでいうところのh1とか見出し?
本に書いてあるサンプルをやってみたのだが、
名前空間の使い方を初めて学んだ。
とりあえず、using namespace hogehoge;で呼び出せるようだ。(想像)
usingしないとhogehoge::hogeのようにやらんと使えないか(想像)

main.cpp

#include <iostream>
using namespace std;

namespace firstNS{
	
	class demo{
		
		int i;
		
	public:
	
		demo(int x) { i = x; }
		void seti(int x) { i = x;}
		int geti() { return i; }
	
	};
	char str[] = "名前空間を説明する\n";
	int counter;
	
}

namespace secondNS{
	
	int x, y;
	
}

int main(){
	
	//スコープ解決演算子を使用する
	firstNS::demo ob(10);
	
	/*obを宣言した後は、名前空間就職しを使用せずに
	そのメンバ関数を使用することができる*/
	
	cout << "ob value is : " << ob.geti();
	cout << endl;
	
	ob.seti(99);
	
	cout << "now ob value is : " << ob.geti();
	cout << endl;
	
	//strを現在のスコープを取り込む
	using firstNS::str;
	cout << str;
	
	//firstNSのすべてびメンバを現在のスコープに取り込む
	using namespace firstNS;
	for(counter = 10; counter; counter--)
		cout << counter << " ";
	cout << endl;
	
	//secondNS 名前空間を使用する
	secondNS::x = 10;
	secondNS::y = 20;
	
	cout << "x, y: " << secondNS :: x;
	cout << ", " << secondNS::y << endl;
	
	 //2つの名前空間を可視状態にする
	 using namespace secondNS;
	 demo xob(x), yob(y);
	 
	  cout << "xob, yob: " << xob.geti() << ", ";
	  cout << yob.geti() << endl; 
	  
	  return 0;
	
}

//10分プログラミング(自分用に使うために作った自分用の造語)
//実際はだいたい20m47s掛かった。(ストップウォッチで計測)
//他、20分程、例外処理とかやった。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?