回答: C の関数オーバーロードと関数仮想関数を使用すると、開発者は同じ名前でパラメーター リストや動作が異なる関数を作成できます。詳細な説明: 関数のオーバーロード: 同じ名前で異なるパラメーター リストを持つ関数を作成して、さまざまな状況で同様の機能を持つ関数を使用します。関数仮想関数: ポリモーフィズムに使用される派生クラスの基本クラスの関数をオーバーライドし、派生クラスが基本クラスとは異なる実装を提供できるようにします。
#C の関数のオーバーロードと関数仮想関数
##関数のオーバーロード#関数のオーバーロードを使用すると、名前は同じだがパラメータ リストが異なる複数の関数を作成できます。これは、さまざまな状況で同様の機能を持つ関数を使用する必要がある場合に便利です。
# 構文:ret_type function_name(parameter_list_1); ret_type function_name(parameter_list_2); ...
例:
void printInfo(int x) { cout << "int: " << x << endl; } void printInfo(double x) { cout << "double: " << x << endl; } int main() { int a = 10; double b = 3.14; printInfo(a); // calls printInfo(int) printInfo(b); // calls printInfo(double) return 0; }
関数仮想関数
Function 仮想関数を使用すると、派生クラスの基本クラスの関数をオーバーライドできます。これは、基本クラスとは異なる実装を持つ派生クラスを提供できるため、ポリモーフィズムやオブジェクト指向プログラミングに役立ちます。
構文:基本クラスで関数を宣言する場合は、キーワード virtual を使用します。
virtual ret_type function_name(parameter_list) const = 0;
派生クラスの関数をオーバーライドする場合は、キーワード override
を使用します。
override ret_type function_name(parameter_list) const { /*implementation */ }
例:
class Shape { public: virtual double area() const = 0; // pure virtual function }; class Circle : public Shape { public: double radius; Circle(double radius) : radius(radius) {} override double area() const { return 3.14 * radius * radius; } }; class Square : public Shape { public: double side; Square(double side) : side(side) {} override double area() const { return side * side; } }; int main() { Shape* s1 = new Circle(5); Shape* s2 = new Square(10); cout << "Area of circle: " << s1->area() << endl; cout << "Area of square: " << s2->area() << endl; return 0; }
注:
関数のオーバーロードは、異なるパラメーター リストにのみ適用されます。戻り値の型だけを変更することはできません。
関数仮想関数は、仮想関数、つまり基本クラスでvirtual
および
以上がC++ 関数のオーバーロードと関数仮想関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。