Beispiel #1
0
 double GetResult()
 {
     return op->GetResult();
 }
int test_SimplyFactory1()
{
	//CCalculatorFactory* calFactory = new CCalculatorFactory();
	int type = 0;
	double a = 10, b = 2;

	type = 1;
	//COperation* operation = calFactory->CreateOperation((PRODUCTTYPE)type, a, b);
	COperation* operation = CCalculatorFactory::CreateOperation((PRODUCTTYPE)type, a, b);
	if (operation) {
		std::cout << operation->GetResult() << std::endl;
		delete operation;
		operation = NULL;
	}

	type = 2;
	//operation = calFactory->CreateOperation((PRODUCTTYPE)type, a, b);
	operation = CCalculatorFactory::CreateOperation((PRODUCTTYPE)type, a, b);
	if (operation) {
		std::cout << operation->GetResult() << std::endl;
		delete operation;
		operation = NULL;
	}

	type = 3;
	//operation = calFactory->CreateOperation((PRODUCTTYPE)type, a, b);
	operation = CCalculatorFactory::CreateOperation((PRODUCTTYPE)type, a, b);
	if (operation) {
		std::cout << operation->GetResult() << std::endl;
		delete operation;
		operation = NULL;
	}

	type = 4;
	//operation = calFactory->CreateOperation((PRODUCTTYPE)type, a, b);
	operation = CCalculatorFactory::CreateOperation((PRODUCTTYPE)type, a, b);
	if (operation) {
		std::cout << operation->GetResult() << std::endl;
		delete operation;
		operation = NULL;
	}

	/*if (calFactory) {
	delete calFactory;
	calFactory = NULL;
	}*/

	/*result
		COperation constructor
		CAddOperation constructor
		12
		CAddOperation destructor
		COperation destructor
		COperation constructor
		CSubOperation constructor
		8
		CSubOperation destructor
		COperation destructor
		COperation constructor
		CMulOperation constructor
		20
		CMulOperation destructor
		COperation destructor
		COperation constructor
		CDivOperation constructor
		5
		CDivOperation destructor
		COperation destructor
	*/

	return 0;
}