假设我有一个简单的复合模式结构:
抽象类
User叶类
PersonalUserGroupUser以std::vector<User*> users容器为成员变量的复合类
以及如果在容器中找到用户(自然由其他或对象组成)则bool GroupUser::findUser(User* u)返回的方法trueuusersPersonalUserGroupUser
现在,我当然想递归地定义该函数,所以我需要遍历向量中的每个User,users并与 进行比较u,但我不知道是否User是 aPersonalUser或GroupUser,所以我的问题是:
我是否必须定义一个虚拟函数char User::returnType()来告诉我User它是哪种类型,或者是否有更好/更智能的方法可以沿着树向下寻找User?
ps 当然有一种方法bool areEqual(User*, User*),我们可以通过它来比较用户:)