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