関数書き換えとテンプレート プログラミング: コード拡張とコード一般化の魔法の使い方を明らかにする

王林
リリース: 2024-05-05 11:00:01
オリジナル
946 人が閲覧しました

関数の書き換えとテンプレート プログラミングは、コードの拡張と一般化を可能にする C の強力なテクニックです。関数オーバーライドでは、派生クラスの基本クラス メソッドをオーバーライドすることで拡張が可能になり、テンプレート プログラミングでは、さまざまな型で使用できる汎用コードを作成して汎用化が可能になります。実際の例では、関数の書き換えとテンプレート プログラミングを使用して形状の面積を計算する方法を示し、コードの拡張と一般化における両方の手法の使用を示します。

関数書き換えとテンプレート プログラミング: コード拡張とコード一般化の魔法の使い方を明らかにする

関数の書き換えとテンプレート プログラミング: コード拡張とコードの一般化の素晴らしい使用方法を明らかにします

関数の書き換えとテンプレート プログラミングは、C プログラミングの強力なテクニックです。開発者はスケーラブルで汎用性の高いコードを作成できます。

関数オーバーライド

関数オーバーライドを使用すると、基本クラス メソッドの代替実装を派生クラスで提供できるようになり、コード拡張が可能になります。構文は次のとおりです。

class Derived : public Base { public: // 重写基类方法 override double calculate() { // 自定义实现 ... } };
ログイン後にコピー

テンプレート プログラミング

テンプレート プログラミングを使用すると、さまざまなタイプに使用できる汎用コードを作成できます。構文は次のとおりです。

template 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 class Shape { T side; public: Shape(T side) : side(side) {} T calculateArea() { return side * side; } // 通用实现 }; // 使用模板实例化创建特定形状 class Square : public Shape {}; class Circle : public Shape {}; int main() { Square s(5); Circle c(10); cout << "Square area: " << s.calculateArea() << endl; cout << "Circle area: " << c.calculateArea() << endl; }
ログイン後にコピー

以上が関数書き換えとテンプレート プログラミング: コード拡張とコード一般化の魔法の使い方を明らかにするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!