Quais são as diferenças entre classes abstratas e classes derivadas na programação c ++?

Classes abstratas e derivadas não são nem comparáveis, quero dizer, são duas coisas muito diferentes e não há chance de alguém confundir as duas.

Classe abstrata: é uma classe parcialmente implementada. Isso significa que algumas funções na classe abstrata serão abstratas, ou seja, não implementadas. O corpo deles não será escrito na aula abstrata.

Agora vem a classe derivada. Uma classe derivada é uma classe que "estende" a classe pai. Suponha que existam 2 classes A e B. Quando dizemos B derivado de A, significa que todas as funções e variáveis ​​que pertencem à classe A também pertencem à classe B, elas são "herdadas" da classe A. Pense disso, como A é pai e B é filho. A propriedade, dinheiro e todos os pertences dos pais pertencem automaticamente à criança.

Quando o pai deixa alguma função abstrata, ou seja, não escrita, o filho conclui sua definição. A classe filho precisa "implementar" as funções abstratas que herdou. Então, se eu escrever uma classe parcialmente implementada, chamarei de classe abstrata. E quando tiver que concluir, escreverei uma classe filho e implementarei minhas funções lá. Assim, a classe filho será chamada classe derivada.

Espero que isto ajude.

Primeiro estou falando isso,

Uma classe abstrata contém pelo menos uma função virtual pura. Você declara uma função virtual pura usando um especificador puro (= 0) na declaração de uma função de membro virtual na declaração de classe.

E a segunda coisa é

Classe derivada (classe secundária)

Uma classe pode ser usada como a classe base para uma nova classe derivada. A classe derivada herda todas as propriedades da classe base. A classe derivada pode adicionar novos membros ou alterar membros da classe base.