運(yùn)行錯(cuò)誤卻顯示提交通過(guò),請(qǐng)教哪有問(wèn)題
#include <iostream>
#include <stdlib.h>
#include <string>
#include <typeinfo>
using namespace std;
/**
?* 定義移動(dòng)類(lèi):Movable
?* 純虛函數(shù):move
?*/
class Movable
{
public:
? ? virtual void move() = 0;
};
/**
?* 定義公交車(chē)類(lèi):Bus
?* 公有繼承移動(dòng)類(lèi)
?* 特有方法carry
?*/
class Bus : public Moveable
{
public:
? ? virtual void move()
? ? {
? ? ? ? cout << "Bus -- move" << endl;
? ? }
? ??
? ? void carry()
? ? {
? ? ? ? cout << "Bus -- carry" << endl;
? ? }
};
/**
?* 定義坦克類(lèi):Tank
?* 公有繼承移動(dòng)類(lèi)
?* 特有方法fire
?*/
class Tank :public Moveable
{
public:
? ? virtual void move()
? ? {
? ? ? ? cout << "Tank -- move" << endl;
? ? }
? ? void fire()
? ? {
? ? ? ? cout << "Tank -- fire" << endl;
? ? }
};
/**
?* 定義函數(shù)doSomething含參數(shù)
?* 使用dynamic_cast轉(zhuǎn)換類(lèi)型
?*/
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();
? ? }
}
int main()
{
? ? Bus b;
? ? Tank t;
? ? doSomething(&b);
? ? doSomething(&t);
? ? return 0;
}
2018-07-25
是Movable不是Moveable,兩個(gè)公有繼承那里都打錯(cuò)了。