単純な複合パターン構造があるとします。
抽象クラス
Userリーフクラス
PersonalUserコンテナーをメンバー変数として
GroupUser持つ複合クラスstd::vector<User*> users
そして、ユーザーがコンテナ(他のオブジェクトまたはオブジェクトで自然に構成されている)で見つかった場合bool GroupUser::findUser(User* u)に返されるメソッドtrueuusersPersonalUserGroupUser
さて、もちろんその関数を再帰的に定義したいので、それぞれUserをベクトルで調べてusersと比較する必要がありますが、がaか、かわからないので、私の質問は次のとおりです。uUserPersonalUserGroupUser
char User::returnType()どのタイプであるかを教えてくれる仮想関数を定義するUser必要がありますか、それともツリーを下って探していくためのより良い/よりスマートな方法がありUserますか?
psもちろん、bool areEqual(User*, User*)ユーザーを比較できるような方法があります:)