#include using namespace std; class OperationCls{ public: virtual int GetResult() = 0; private: int NumberA; int NumberB; };

class OperationPlus : public OperationCls { public: int GetResult(){ return NumberA + NumberB;

  }	

}; class OperationSub : public OperationCls{ public: int GetResult(){ return NumberA - NumberB; }

};

class FactoryOperate{ public: OperationCls * CreateOperate(int type){ switch (type){ case 1: return new OperationPlus; break; case 2: return new OperationSub; break; default: break; }

	}

}; int main(){ FactoryOperate *factory = new FactoryOperate(); cout<CreateOperate(1)->GetResult(); cout<CreateOperate(2)->GetResult();

} // 解释每行内容: #include // 引入iostream库,用于输入输出 using namespace std; // 使用std命名空间,避免冲突

class OperationCls{ // 定义OperationCls类 public: virtual int GetResult() = 0; // 声明纯虚函数GetResult() private: int NumberA; // 定义私有成员变量NumberA int NumberB; // 定义私有成员变量NumberB };

class OperationPlus : public OperationCls // OperationPlus类继承自OperationCls类 { public: int GetResult(){ // 重写GetResult()函数 return NumberA + NumberB; // 返回NumberA和NumberB的和

  }	

};

class OperationSub : public OperationCls{ // OperationSub类继承自OperationCls类 public: int GetResult(){ // 重写GetResult()函数 return NumberA - NumberB; // 返回NumberA和NumberB的差 }

};

class FactoryOperate{ // 定义FactoryOperate类 public: OperationCls * CreateOperate(int type){ // 定义CreateOperate函数,根据输入的type返回相应的OperationCls对象指针 switch (type){ // 根据type的值进行判断 case 1: // 如果type为1 return new OperationPlus; // 返回一个OperationPlus对象指针 break; case 2: // 如果type为2 return new OperationSub; // 返回一个OperationSub对象指针 break; default: // 默认情况 break; }

	}

}; int main(){ FactoryOperate *factory = new FactoryOperate(); // 创建FactoryOperate对象指针 cout<CreateOperate(1)->GetResult(); // 打印通过FactoryOperate对象指针调用CreateOperate函数返回的OperationCls对象指针的GetResult函数的结果 cout<CreateOperate(2)->GetResult(); // 打印通过FactoryOperate对象指针调用CreateOperate函数返回的OperationCls对象指针的GetResult函数的结果

}

C++ 简单工厂模式实现加减运算示例

原文地址: https://www.cveoy.top/t/topic/qww5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录