関数がオーバーロードされると、参照またはポインターが渡され、すべての関数で同じ型のデータを使用する必要があります。関数を書き換える場合、参照メンバー関数の場合、サブクラス関数は同じ型の変数を参照する必要があり、メンバー関数を指す場合、サブクラス関数は同じ型の変数を指す必要があります。
関数のオーバーロードは同じロールで許可されます。複数作成します。ドメイン内の関数は、名前は同じですがパラメータ リストが異なります。参照とポインタについては、次の点に注意する必要があります:
##参照を渡すとき、すべての関数は同じタイプのデータを参照する必要があります:
void print(const int& num); void print(const double& d);
ポインターを渡すときは、すべての関数が同じタイプのデータを指す必要があります:
void print(int* num); void print(double* d);
参照メンバー関数の場合、サブクラス関数は同じ型の変数を参照する必要があります:
class Parent { public: void setAge(const int& age); }; class Child : public Parent { public: void setAge(const int& age) override; // 同一类型引用 };
メンバー関数を指す場合、サブクラス関数は同じ型の変数を指す必要があります:
class Parent { public: int* getPtr(); }; class Child : public Parent { public: int* getPtr() override; // 同一类型指针 };
person クラスがあると仮定します。このクラスには、
setAge(const int& age) と
setName(const string& name) という 2 つのメンバー関数があります。
Employee を作成し、
Person クラスから継承し、
setAge 関数をオーバーライドして年齢を
に設定します。 年齢までに 5 歳まで。
class Person { public: void setAge(const int& age); void setName(const string& name); }; class Employee : public Person { public: void setAge(const int& age) override; // 重写setAge函数 }; // Employee 类中的 setAge 函数 void Employee::setAge(const int& age) { Person::setAge(age + 5); // 调用父类setAge函数 }これで、
Employee オブジェクトを作成し、オーバーライドされた
setAge 関数を使用できます。
以上がC++ 関数のオーバーロードと書き換えにおける参照とポインターの処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。