PDA

View Full Version : سوال: کست کردن یک کلاس به کلاس دیگه



BeginnerProgrammer
سه شنبه 19 مرداد 1389, 18:39 عصر
سلام
من یه کلاس پایه دارم که دوتا کلاس دیگه از این کلاس ارث بری کردن حالا میخوام یک آرایه از کلاس پایه تعریف کنم که داخل این آرایه کلاسهایی از نوع دوتا کلاس دیگه رو قرار بدم. ولی نمیدونم چطوری باید این کلاسا رو کست کنم
لطفا راهنمایی کنید

PC2st
سه شنبه 19 مرداد 1389, 21:10 عصر
فرضاً اگر آرایه توسط vector و اشیاء توسط new و delete از روی کلاس‌ها ایجاد و حذف شوند:


Child1* ch1 = new Child1;
Child2* ch2 = new Child2("X");
std::vector<Base*> objs;
objs.push_back(ch1);
objs.push_back(ch2);
objs.push_back(new Child2("Y"));
...
objs[1]->func_from_base();
Child1* chhhh = dynamic_cast<Child1*>(objs[0]);
chhhh->func_from_child1();
dynamic_cast<Child2*>(objs[1])->func_from_child2();
...
for (int i = 0; i < objs.size(); ++i)
{
delete objs[i];
}