仮想メソッドをオーバーライドすると、子の引数の名前を変更できますか?引数の同じ型、ちょうど変更(int num)
を(int n)
に言う?C++継承時に関数の引数の名前を変更しますか?
この例は有効ですか?
class Animal
{
public:
virtual int foo(int num) {
return num + 1;
}
};
class Cat : public Animal
{
public:
int foo(int n) override {
return n - 1;
}
};
もしそうなら、なぜ引数の名前は関係ありませんか?
おかげと同じ
signature
を持っていることを確認してくださいタイプ!あなたのコメントとサムの「const」は矛盾しているようですね。 – hubatish@hubatishサムは、関数が 'const'としてマークされていると話しています。関数のパラメータではありません。 – NathanOliver
また、constnessはこれより少し微妙であることに注意してください。 'void foo(const int * x);と' void foo(int * x) 'は2つの異なる関数です(なぜなら、ここではconstのxではないからです)。 – Frank