Qual é a diferença entre herança public, protected e private em C++?
Olá, colegas! Comecei a estudar C++ e cheguei na herança, mas me confundi com os modificadores de acesso na herança de classes. Os livros explicam de forma complicada.
Suponha que exista uma classe base com diferentes campos:
```cpp
class Base {
public:
int pub = 1;
protected:
int prot = 2;
private:
int priv = 3;
};
```
Por que em C++ preciso escrever `class Derived : public Base`, e não apenas `class Derived : Base`? O que muda se eu escrever `class Derived : private Base` ou `class Derived : protected Base`?
Tentei diferentes opções, mas não entendo a lógica. Por exemplo, se eu herdar via `private`, posso acessar `pub` e `prot` dentro da classe derivada? E fora? O que acontece se eu herdar uma struct de uma classe? E o principal — para que servem esses três tipos de herança, se posso simplesmente usar `public` em todos os lugares?
Expliquem, por favor, em palavras simples com exemplos. De preferência de forma intuitiva, para que um iniciante entenda. Desde já, obrigado!
<<>>
Resumo
No answers yet.
Faça login para deixar uma resposta
Blogs