关于虚函数,正确的说法是:
A. 虚函数不能定义为private。虚函数必须被声明为public或protected,在派生类中才能被访问(覆盖)。
B. 虚函数可以被子类覆盖。虚函数是为了支持多态性而设计的,子类可以通过覆盖虚函数来改变父类的行为。
C. 子类不能调用父类private的虚函数。由于private函数在派生类中不可见,派生类无法调用父类的private函数,更不能覆盖它。
D. 虚函数的重载性和它声明的权限无关。虚函数的重载性是根据函数的参数类型和个数确定的,与函数的声明权限无关。当派生类中的函数与基类中的虚函数同名但参数列表不同,它并不会覆盖基类中的虚函数,而是在派生类中重载了该函数。