作笔记使用,如有写的不好或者不够精妙的,还请指正!!如果觉得有帮助也可以三连一波,多谢!
#includeusing namespace std; class Caculator { public: virtual int caculate(int a, int b) = 0; // 设为纯虚函数,子类必须重写 }; class Add : public Caculator { public: int caculate(int a, int b) { return a + b; } }; class Minus : public Caculator { public: int caculate(int a, int b) { return a - b; } }; class Multiply : public Caculator { public: int caculate(int a, int b) { return a * b; } }; class Divide : public Caculator { public: int caculate(int a, int b) { return a / b; } }; // 工厂类 class Factory { public: // 返回一个父类指针指向子类对象(多态的实现) Caculator* create_caculator(char ch) { switch (ch) { case 'a': return new Add(); case 'b': return new Minus(); case 'c': return new Multiply(); case 'd': return new Divide(); default: cout << "ERROR" << endl; return nullptr; } } }; int main() { // 检验功能 int a = 10, b = 2; Factory factory; Caculator* add = factory.create_caculator('a'); Caculator* minus = factory.create_caculator('b'); Caculator* multiply = factory.create_caculator('c'); Caculator* divide = factory.create_caculator('d'); cout << add->caculate(a, b) << endl; cout << minus->caculate(a, b) << endl; cout << multiply->caculate(a, b) << endl; cout << divide->caculate(a, b) << endl; return 0; }
溜了溜了~~~~~



