virtual? sobrepor? ou ambos? C ++ [duplicado]
Esta pergunta já tem uma resposta aqui:
A palavra-chave 'substituir' é apenas uma verificação de um método virtual substituído? 5 respostasnas últimas semanas, algo está incomodando meu cérebro sobre virtual e substituição. Aprendi que quando você herda a função virtual, é necessário adicionarvirtual
para permitir que o compilador procure a função correta. Depois aprendi também que no c ++ 11 há uma nova palavra-chave - substituição. Agora estou um pouco confuso;Preciso usar palavras-chave virtuais e de substituição no meu programa ou é melhor usar apenas uma delas?
Para me explicar - exemplos de código do que quero dizer:
class Base
{
public:
virtual void print() const = 0;
virtual void printthat() const = 0;
virtual void printit() const = 0;
};
class inhert : public Base
{
public:
// only virtual keyword for overriding.
virtual void print() const {}
// only override keyword for overriding.
void printthat() const override {}
// using both virtual and override keywords for overriding.
virtual void printit() const override {}
};
Qual é o melhor método?