関数の宣言に関する簡単な質問。私が次のコードを持っているとしましょう:
class a{
int var;
/* stuff*/
}
class b : a{
/* other stuff*/
}
class c : a{
/* more other stuff*/
}
class d{
myFunctionThatWantsTheIntNamedVar(SubClassOfClassA SomeClassUnknownAtCompileTime);
}
そしてmyFunctionThatWantsTheIntNamedVar()はまさにそれを望んでおり、整数(varと呼ばれる)はaの基本クラスで宣言されています。クラスdの関数には、クラスbまたはクラスcのインスタンスを渡すことができます。これは、コンパイル時(実行時のみ)にはわかりません。
クラスbまたはcのいずれかを取り、同じ基本変数を取得できる関数を簡潔に宣言する方法はありますか?
その間に私が行ったことは、次のように、クラスdで2つのメソッドを宣言することです。
class d{
myFunctionThatWantsTheIntNamedVar(c aClassCInstance);
myFunctionThatWantsTheIntNamedVar(b aClassBInstance);
}
これは問題ありませんが、2つのメソッドのコードは同一です...そしてオブジェクト指向プログラミングの私の理解から、コードが同一であれば、それをより良い関数に組み合わせることができるはずです。
これについて何か考えはありますか?私は小さな会社で働いており、フィードバックを得るのが難しい場合があるため、ここでベストプラクティスやその他のアドバイスを探すだけです。
編集:申し訳ありませんが、コードにエラーがあり、次のように変更しました:
myfunctionThatWantsTheInNamedVar(a aClassAInstance);
に:
myfunctionThatWantsTheInNamedVar(c aClassCInstance);
私の悪い。