当前位置: 首页 > 科技观察

C++中值得分析的几个小问题

时间:2023-03-12 03:10:14 科技观察

以下三个小问题,都是我认为C++初学者应该能够回答或识别清楚的。希望大家通过题目能够挖掘出更多的信息,而不仅仅局限于解决问题。最想说的一句话:能力有限,作为抛砖引玉,希望大家一起讨论,指出错误。另外,我总是遇到一个问题,觉得有必要记录一下,所以就写下来说说,所以每篇文章可能没有单一的主题。1、先看一个简单的问题。有如下继承类:classPerson{public:voidWalk()//普通人的“走路”{cout<<"Person::WalkIamanOrdinaryPeople."<Walk();Student*ps=&s;ps->Walk();结果是这样的:分析:Walk()是一个非虚函数,是静态绑定的,所以pp和ps的类型决定了调用的版本。在这里,我想再说明一点:理解接口继承和实现继承。声明非虚函数的目的是让派生类继承该函数的接口和强制实现。因此,永远不要重新定义继承的非虚函数。2、下面的问题本质上是静态绑定和动态绑定的问题,只是看起来没有那么明显。classShape{public:enumShapeColor{Red,Green,Blue};//形状颜色";cout<<"Mycolor="<