c++未重载基类函数中调用被子类重载的函数

简介若没有声明虚函数,子类对象调用父类中未被重载的方法后,若继续调用父类中存在的其它方法,则优先使用父类中的方法。 若父类中待调用函数声明为虚的  virtual void print2() ,之后通过父类中未重载的方法调用对应声明为虚的方法 print2() 会使用子类中重载的方法。若子类未重载,继续使用父类方法。 #include <iostream> using namespace std; clas

若没有声明虚函数,子类对象调用父类中未被重载的方法后,若继续调用父类中存在的其它方法,则优先使用父类中的方法。

若父类中待调用函数声明为虚的  virtual void print2() ,之后通过父类中未重载的方法调用对应声明为虚的方法 print2() 会使用子类中重载的方法。若子类未重载,继续使用父类方法。





#include <iostream>
using namespace std;

class A
{
public:
	A()
	{
		//print();
	}
	void print()
	{
		cout << "A";
		print2();
	}
	void print2()
	{
		cout << "A2";
	}
}; 

class B:public A
{
public:
	B()
	{
		//print();
	}
	
	void print2()
	{
		cout << "B2";
	}
};


int main()
{
	B b;
	b.print();

	return 0;
}


新加评论 评论标题: