2011年11月5日星期六

动态类型检查

for (int i = 0; i < department.size(); i++)
{
   Manager* m = dynamic_cast<Manager*>(department[i]);
      if (m != NULL)
         cout << "Employee " << department[i]->get_name()
            << " is a manager.\n";
   else
      cout << "Employee " << department[i]->get_name()
         << " is not a manager.\n";
}
for (int i = 0; i < department.size(); i++)
{
   if (typeid(*department[i]) == typeid(Manager))
      cout << "Employee " << department[i]->get_name()
         << " is a manager. \n";
   else
      cout << "Employee " << department[i]->get_name()
         << " is not a manager. \n";
}

没有评论:

发表评论