各位小伙伴大家好:
今天和大家分享的内容是关于标准错误输出以及抽象类和接口类。
抽象类和接口类本质上也是类,只是他们不能实例化。
首先还是来看看结果
结果输出了abc然后又倒序输出cba,后面还输出了一句提示。
下面来看代码
程序声明了两个类,基类Stack和子类ArrayStack。其中基类的定义比较奇特,将成员函数赋值为0,只做了声明没有定义。
我们将这种只对成员函数进行声明,并不定义且函数赋值为0的类成为接口类。
另外如果接口类中定义其他非纯虚函数则称为抽象类。
笔记:
所谓抽象类就是在类的定义中只声明函数,至于这个函数要实现什么功能全部交给子类去完成(也就是只定义规则给子类留个接口)。将成员函数全部声明为纯虚函数并且赋值为0。
抽象类和接口类都不能实例化,只能给子类继承,在子类中实现函数的定义。
2、另外这里的栈,只是模拟了栈的功能。Pop函数其实并没有删除字符数组的元素,只是每一次返回数组中的不同元素(top的值)
将代码做一点小小的修改来验证我们的结论
我们在ArrayStack类中加入一个成员函数用于显示字符数组中的元素。结果如下:
我们在执行四次pop函数之后,p数组中的元素依然没有改变。另外函数f中的字符数组ch也没有变化。
所以这里的pop函数并不是删除数组中的元素,而只是返回数组不同位置的数值而已。
本期就介绍到这里,我们下期再会。
欢迎加入微信群获取源代码和素材。
领取专属 10元无门槛券
私享最新 技术干货