最赞回答 / 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
最新回答 / 流星1998
#include <iostream>#include <stdlib.h>#include <string>using namespace std;/** * 定义动物类:Animal * 虚函数:eat() * 纯虚函数:move() * 数据成员:m_strName */class Animal{public: // 默认构造函数 Animal(){} // 含参构造函数 Animal(string name){m_strName = name;...
2015-09-14