2025-09-04 C++策略模式深度解析:函数对象与虚函数实现差异 C++策略模式深度解析:函数对象与虚函数实现差异 在软件设计领域,策略模式作为行为型设计模式的代表,其核心思想是将算法族抽象为独立对象,使得它们可以相互替换。这种模式在C++中主要有两种实现路径:基于虚函数的传统实现和基于函数对象的现代实现。这两种实现背后反映的是C++语言特性与设计哲学的演变。一、虚函数实现:面向对象的经典解法cpp class SortingStrategy { public: virtual ~SortingStrategy() = default; virtual void sort(vector& data) const = 0; };class QuickSort : public SortingStrategy { public: void sort(vector& data) const override { cout << "Using quicksort algorithm" << endl; // 快速排序实现 } };class Context { uniqueptr strat... 2025年09月04日 23 阅读 0 评论
2025-08-06 泛型类中内部类的参数方法无法被覆盖问题深度解析 泛型类中内部类的参数方法无法被覆盖问题深度解析 一、现象还原:当覆盖遇到泛型内部类在实际编码中,我们可能遇到这样的场景:java class Outer { class Inner { void process(T param) { // 泛型参数方法 System.out.println("Outer.Inner.process"); } } }class SubOuter extends Outer { class SubInner extends Outer.Inner { @Override void process(String param) { // 尝试覆盖父类方法 System.out.println("SubOuter.SubInner.process"); } } }编译时会出现Method does not override method from its superclass错误。这个看似简单的继承关系,为何会出现方法覆盖失败?二、问题本质:类型... 2025年08月06日 33 阅读 0 评论