在C++中,私有函数不能覆盖公共虚函数。这是因为私有函数只能在类内部访问,而虚函数需要在派生类中进行重写。如果私有函数覆盖了公共虚函数,那么派生类将无法访问这个私有函数,从而无法重写它。这违反了C++的访问控制规则。
如果您想要在派生类中重写一个虚函数,那么这个函数必须是公共的。这是因为派生类需要访问这个函数,并且需要重写它。如果这个函数是私有的,那么派生类将无法访问它,从而无法重写它。
如果您想要在派生类中重写一个虚函数,并且同时不想让其他类访问这个函数,那么您可以将这个函数声明为受保护的(protected)。这样,派生类可以访问这个函数,并且重写它,但是其他类将无法访问它。
总之,私有函数不能覆盖公共虚函数,因为私有函数只能在类内部访问,而虚函数需要在派生类中进行重写。如果您想要在派生类中重写一个虚函数,那么这个函数必须是公共的。如果您想要在派生类中重写一个虚函数,并且同时不想让其他类访问这个函数,那么您可以将这个函数声明为受保护的(protected)。
领取专属 10元无门槛券
手把手带您无忧上云