クラスの定義と参照

プログラム例 6.1] クラスの定義と参照

  C/C++ において,private の後に記述されたメンバーは,定義されたクラスのメンバー関数,フレンド関数,および,フレンドクラスだけから参照可能です.protected の後に記述されたメンバーは,それに加え,派生クラスからも参照可能になります.また,public の後に記述されたメンバーは,どこからでも参照可能です.勿論,クラス内に定義された関数からは,全ての変数に対する参照が可能です.

/*************************/
/* 様々な引数            */
/*   coded by Y.Suganuma */
/*************************/
#include <stdio.h>

int global_1      = 15;
const int const_1 = 25;

class Test {
		int instance;   // private
	protected :
		const int const_2 = 30;
	public :
		int global_2      = 20;
			// コンストラクタ
		Test(int x) {
			instance = x;
		}
			// private変数の出力
		void out() {
			printf("     instance : %d\n", instance);
			printf("     global_1 : %d\n", global_1);
			printf("     const_1 : %d\n", const_1);
			printf("     global_2 : %d\n", global_2);
			printf("     const_2 : %d\n", const_2);
		}
};

int main()
{
			// インスタンスの生成
	Test obj1(100);
	Test obj2(200);
			// 出力( from main)
	printf("main\n");
//	printf("     instance : %d\n", obj1.instance);   参照不可
	printf("     global_1 : %d\n", global_1);
	printf("     const_1 : %d\n", const_1);
	printf("     global_2 : %d\n", obj1.global_2);
//	printf("     const_2 : %d\n", obj1.const_2);   参照不可
			// 出力( from Test)
	printf("obj1\n");
	obj1.out();
	printf("obj2\n");
	obj2.out();

	return 0;
}
		
(出力)
main
     global_1 : 15
     const_1 : 25
     global_2 : 20
obj1
     instance : 100
     global_1 : 15
     const_1 : 25
     global_2 : 20
     const_2 : 30
obj2
     instance : 200
     global_1 : 15
     const_1 : 25
     global_2 : 20
     const_2 : 30