已采纳回答 / onemoo
从C++语言的角度来说,这就是虚函数的功能,你只需记住即可。如果你深究原因,这和语言的实现有关,大部分平台和编译器都是借助“虚函数表”来实现的,你搜搜这个东西就能明白。 不过你也要知道:C++并没有强制要求用虚函数表来实现多态,C++标准只是规定了行为,并没有规定具体实现方式。
2015-11-27
最赞回答 / DoDream
接口是抽象类,抽象类是只要有1个成员函数是纯虚函数即可,虚基类(接口)则是所有的成员全部是纯虚函数抽象类不可以实例化Flyable *p1的意思是定义一个基类指针,用来指向子类对象,通过基类指针可实现多态。推荐你一个不错的网站,百度搜索C++技术网,第一个就是了,里面有一些关于C++多态的文章,可以加深你对C++多态的了解,这个网站还有很多不错的资源可以下载,例如电子书,IDE等。
2015-10-27
最赞回答 / 紫泉
简单的说,C/C++传参都是先复制一个副本,将副本传入进去,如果没有&,那么就会相当于str的改变只是在函数中改变,并不会影响到实参str。 如果加了&, 那么传入的就是实参str的引用,所谓引用就是实参本身,就是对实参的操作,这样,函数内部改变str,实参str也会改变
2015-10-26
最新回答 / Uestc_L
被调用了,但是父类的构造函数里面没有任何动作,所以你看不到被调用了,如果你在父类构造函数里面写上 Animal(){cout<<"Animal()";} 你就会发现父类构造函数被调用的痕迹
2015-10-16
已采纳回答 / onemoo
这是构造函数的“构造初始化列表”。可以把需要在构造时初始化的成员变量写在这里,括号中是它们的初值,有多个变量就用逗号隔开。也可以写上父类的构造函数,这样可以在构造时按照你提供的参数将父类构造出来。上面这些会在本构造函数执行前构造完成。你这里应该就是父类的构造函数,Plane(code),括号中code就是调用参数。
2015-09-21