急一路面试题,有答案却不能编译通过!求正解!

急!!!一道面试题,有答案却不能编译通过!求正解!!
面试例题1:如果鸟是可以飞的,那么鸵鸟是鸟么?鸵鸟如何继承鸟类?[美国某著名分析软件公司2005年面试题]

  解析:如果所有鸟都能飞,那鸵鸟就不是鸟!回答这种问题时,不要相信自己的直觉!将直觉和合适的继承联系起来还需要一段时间。

  根据题干可以得知:鸟是可以飞的。也就是说,当鸟飞行时,它的高度是大于0的。鸵鸟是鸟类(生物学上)的一种。但它的飞行高度为0(鸵鸟不能飞)。

  不要把可替代性和子集相混淆。即使鸵鸟集是鸟集的一个子集(每个驼鸟集都在鸟集内),但并不意味着鸵鸟的行为能够代替鸟的行为。可替代性与行为有关,与子集没有关系。当评价一个潜在的继承关系时,重要的因素是可替代的行为,而不是子集。

  答案:如果一定要让鸵鸟来继承鸟类,可以采取组合的办法,把鸟类中的可以被鸵鸟继承的函数挑选出来,这样鸵鸟就不是“a kind of”鸟了,而是“has some kind of”鸟的属性而已。代码如下:
C/C++ code

#include <iostream>
#include <string>
using namespace std;
class bird                                    
{                                             
public:                                       
    void eat();                                   
    void sleep();                                 
    void fly();                                   
};    

class ostrich                                 
{                                             
public:                                       
    bird eat(){cout<<"ostrich eat";};             
    bird sleep(){cout<<"ostrich sleep";};         
};                                            
int main()                                    
{                                             
    ostrich xiaoq;                              
    xiaoq.eat();                                
    xiaoq.sleep();                              
    return 0;                                   
}                                           




------解决方案--------------------
不知道在说什么......
------解决方案--------------------
还面试这样的题目,有趣
------解决方案--------------------
C/C++ code

class ostrich                                 
{                                             
public:                                       
    bird eat(){cout<<"ostrich eat";};             
    bird sleep(){cout<<"ostrich sleep";};         
};

------解决方案--------------------
玩哲学,那是得图灵奖的人做的事,程序员就不要玩哲学了。
------解决方案--------------------
我是搞java的,这个题目是不是考的接口啊,因为继承的先天不足(父类有的子类都得有,父类改变子类强制接受)所以出现了接口,接口是单独把方法抽象出来,做成一个规则。比如上面说的鸵鸟是鸟,但没有飞的方法,所以鸟如果作为父类,就不能有飞的方法。只能有吃睡的功能。
把飞的功能抽象成接口,之后会飞的鸟实现这个接口,不会飞的鸟不实现这个借口!这样就满足题目了啊,鸵鸟继承了鸟类,但没有实现飞得接口,所以不能飞!哈哈哈哈OK
------解决方案--------------------
探讨
玩哲学,那是得图灵奖的人做的事,程序员就不要玩哲学了。

------解决方案--------------------
#include <iostream>
#include <string>
using namespace std;
class bird
{
public:
virtual void eat(){};
virtual void sleep(){};
virtual void fly(){};
};

class ostrich:public bird
{
public:
void eat(){cout<<"ostrich eat"; };
void sleep(){cout<<"ostrich sleep";};
};

int _tmain(int argc, _TCHAR* argv[])
{
ostrich xiaoq;
xiaoq.eat();
xiaoq.sleep();
return 0;
}
------解决方案--------------------