関数の書き換えとテンプレート プログラミングは、コードの拡張と一般化を可能にする C の強力なテクニックです。関数オーバーライドでは、派生クラスの基本クラス メソッドをオーバーライドすることで拡張が可能になり、テンプレート プログラミングでは、さまざまな型で使用できる汎用コードを作成して汎用化が可能になります。実際の例では、関数の書き換えとテンプレート プログラミングを使用して形状の面積を計算する方法を示し、コードの拡張と一般化における両方の手法の使用を示します。
関数の書き換えとテンプレート プログラミングは、C プログラミングの強力なテクニックです。開発者はスケーラブルで汎用性の高いコードを作成できます。
関数オーバーライド
関数オーバーライドを使用すると、基本クラス メソッドの代替実装を派生クラスで提供できるようになり、コード拡張が可能になります。構文は次のとおりです。
class Derived : public Base { public: // 重写基类方法 override double calculate() { // 自定义实现 ... } };
テンプレート プログラミング
テンプレート プログラミングを使用すると、さまざまなタイプに使用できる汎用コードを作成できます。構文は次のとおりです。
template<typename T> class MyClass { T data; ... };
実践例
さまざまな形状の面積を計算するプログラムを考えてみましょう。
// 使用基类和函数重写 class Shape { public: virtual double calculateArea() = 0; }; class Square : public Shape { // 使用函数重写扩展基类 public: double side; Square(double side) : side(side) {} double calculateArea() override { return side * side; } }; class Circle : public Shape { // 再次使用函数重写扩展基类 public: double radius; Circle(double radius) : radius(radius) {} double calculateArea() override { return 3.14 * radius * radius; } }; int main() { Square s(5); Circle c(10); cout << "Square area: " << s.calculateArea() << endl; cout << "Circle area: " << c.calculateArea() << endl; }
// 使用模板编程 template<typename T> class Shape { T side; public: Shape(T side) : side(side) {} T calculateArea() { return side * side; } // 通用实现 }; // 使用模板实例化创建特定形状 class Square : public Shape<double> {}; class Circle : public Shape<double> {}; int main() { Square s(5); Circle c(10); cout << "Square area: " << s.calculateArea() << endl; cout << "Circle area: " << c.calculateArea() << endl; }
以上が関数書き換えとテンプレート プログラミング: コード拡張とコード一般化の魔法の使い方を明らかにするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。