Le qualificateur virtuel à une fonction virtuelle de classe de base, dans la classe dérivée fait-il une différence?qualificateur virtuel dans la classe dérivée
class b
{
public:
virtual void foo(){}
};
class d : public b
{
public:
void foo(){ .... }
};
ou
class d : public b
{
public:
virtual void foo(){ .... }
};
est-il une différence dans ces deux déclarations, à part qu'il fait enfant de prendre conscience d virtualité de foo()?
afaik, cela fait la différence si quelque chose d'autre dérive de la classe d –
@Kshitij: Non, même dans ce cas, cela ne fait aucune différence. Une fois que 'foo' est virtuel, c'est virtuel pour toujours, peu importe à quelle distance vous allez de la base dans la hiérarchie des classes. – Nawaz