private メンバ変数への他のインスタンスからのアクセス(C++)

// private メンバ変数に対して、他のインスタンスから
// アクセス可能なことを実感するための C++ サンプルコードです

#include <iostream>

class object_
{
private:
	int member_count;

public:
	object_();
	virtual ~object_();

	virtual void up(object_* object);
	virtual void down(object_* object);
	virtual void print();
};

object_::object_()
{

	member_count = 0;
}

object_::~object_()
{
}

void object_::up(object_* object)
{

	++(object->member_count);
}

void object_::down(object_* object)
{

	--(object->member_count);
}

void object_::print()
{

	std::cout << "(" << member_count << ")";
}

void print(object_** obj)
{

	for (int i = 0; NULL != obj[i]; ++i){

		std::cout << "[obj_" << i << " value] ";
		obj[i]->print();
		std::cout << std::endl;
	}
}

int main(int argc, char* argv[])
{

	object_ obj_0;
	object_ obj_1;
	object_* p[] = { &obj_0, &obj_1, NULL };

	obj_0.up(&obj_0);
	print(p);

	obj_0.up(&obj_1);
	print(p);

	obj_1.up(&obj_0);
	print(p);

	obj_1.up(&obj_1);
	print(p);

	obj_0.down(&obj_0);
	print(p);

	obj_0.down(&obj_1);
	print(p);

	obj_1.down(&obj_0);
	print(p);

	obj_1.down(&obj_1);
	print(p);

	return 0;
}

BACK


View My Stats