void doSomething(Movable *obj)
{
obj->move();
if(typeid(*obj) == typeid(Bus))
{
Bus *bus = dynamic_cast<Bus *>(obj);
bus->carry();
}
if(typeid(*obj) == typeid(Tank))
{
Tank *tank = dynamic_cast<Tank *>(obj);
tank->fire();
}
}
{
obj->move();
if(typeid(*obj) == typeid(Bus))
{
Bus *bus = dynamic_cast<Bus *>(obj);
bus->carry();
}
if(typeid(*obj) == typeid(Tank))
{
Tank *tank = dynamic_cast<Tank *>(obj);
tank->fire();
}
}
2018-02-08
如果不寫animal的默認(rèn)構(gòu)造函數(shù),無法通過編譯,但是dog的默認(rèn)構(gòu)造函數(shù)不寫的話可以通過,是不是跟animal *p有關(guān)啊,他得用到默認(rèn)構(gòu)造函數(shù)啊
2018-01-31
內(nèi)存不足!如果要是真的碰到這種事大部分人可能都會自殺吧。。。
現(xiàn)在內(nèi)存的價格,不是一般的貴,是真的貴!
現(xiàn)在內(nèi)存的價格,不是一般的貴,是真的貴!
2018-01-07
virtual void reload()
{
cout << "Gun -- reload" << endl; }
};
void hunting(CanShut *s)
{
s->aim();
s->reload();
}
int main(void)
{
Gun *g = new Gun;
hunting(g);
delete g ;
g = NULL;
return 0;
}
{
cout << "Gun -- reload" << endl; }
};
void hunting(CanShut *s)
{
s->aim();
s->reload();
}
int main(void)
{
Gun *g = new Gun;
hunting(g);
delete g ;
g = NULL;
return 0;
}
2017-12-27
int main(void)
{
// 通過父類對象實例化狗類
Animal *animal = new Dog();
// 調(diào)用成員函數(shù)
animal -> eat();
animal -> move();
// 釋放內(nèi)存
delete animal;
animal = NULL;
return 0;
}
{
// 通過父類對象實例化狗類
Animal *animal = new Dog();
// 調(diào)用成員函數(shù)
animal -> eat();
animal -> move();
// 釋放內(nèi)存
delete animal;
animal = NULL;
return 0;
}
2017-12-27
回復(fù):帥踢鍋{
給大家出個題啊,下面代碼的輸出結(jié)果為什么?
int m = 1, n = 2, *p = &m;
cout << ++*q << *++q << endl;
}
q沒有定義,編譯報錯,什么都不打印【手動滑稽】
給大家出個題啊,下面代碼的輸出結(jié)果為什么?
int m = 1, n = 2, *p = &m;
cout << ++*q << *++q << endl;
}
q沒有定義,編譯報錯,什么都不打印【手動滑稽】
2017-12-14
不是沒有輸出Animal 就是沒執(zhí)行,只是由于沒有在初始化列表里給Animal的構(gòu)造函數(shù)傳遞name參數(shù),所以執(zhí)行了Animal的默認(rèn)構(gòu)造函數(shù),所以沒輸出Animal。
2017-12-09