cout<<"A::func1()"<
以上语句输出:
B::func1()
A::func2()
原因:这个考的是类的多态和子类重写父类方法的一个题。
func1在父类A中是一个虚函数,func2不是虚函数,在子类B中被重写
多态中,可以用父类的指针指向子类的对象,并且根据传入的子类对象,调用相应的函数,这个就很好的实现了类的多态性,在实际应用中往往用于定义一个公共接口。所以因为传入的子类B的对象,所以pa->func1(); 结果为:B::func1()
重写是一种覆盖父类方法的应用,在这个题中,它与类的多态性不同,重写只根据当前指针类型和什么,就调用哪个类中的方法,这里用的是父类A的指针,所以pa->func2();的结果为:A::func2()
加引号就会输出引号里面的字符,不加引号就是输出变量。一般加引号是为了看起来明了。
为了以字符串形式输出,加引号的话输出就是A::func1()。
例如,cout<<"你好"<
做字符串输出