2018-08-08函数
1.纯虚函数spa
百度百科:纯虚函数是一种特殊的虚函数,在许多状况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留給基类的派生类去作。指针
纯虚函数格式:对象
class <类名> { virtual <类型><函数名>(<参数表>)=0; ... }
引入缘由:blog
1)为了方便使用多态特性,经常须要在基类中定义虚函数开发
2)在不少状况下,基类自己生成对象是不合情理的。例如:动物做为一个基类能够派生出老虎、孔雀等子类,但动物自己生成对象明显不合常理。博客
2.虚函数编译
百度百科:在某基类中声明为virtual并在一个或多个派生类中被从新定义的成员函数class
定义格式百度
virtual 返回类型 函数名(参数列表) {函数体}
指向基类的指针在操做它的多态类对象时,会根据不一样的类对象,调用相应的函数,这个函数就是虚函数。
区别:
纯虚函数是虚函数的一个子集,用于抽象类,含有纯虚函数的类就是抽象类,它不能生成对象。
3.virtual在函数中的使用限制
1)普通函数不能是虚函数,也就是说这个函数必须是某一个类的成员函数,不能够是一个全局函数,不然会致使编译错误。
2)静态成员函数不能是虚函数 static成员函数是和类同生共处,他不属于任何对象,使用virtual也将致使错误。
3) 构造函数不能是虚函数,不然会出现编译错误。