Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Modificadores de Acesso na Herança | Visão Geral de Herança
Quizzes & Challenges
Quizzes
Challenges
/
C++ Poo

bookModificadores de Acesso na Herança

Modificadores de acesso desempenham um papel crucial na programação orientada a objetos, especialmente na herança. Eles determinam como os membros (atributos e métodos) de uma classe base podem ser acessados pelas classes derivadas. Compreender esses modificadores é essencial para projetar classes eficazes e manter a encapsulação e integridade dos dados.

Tipos de acesso na herança

Uma classe pode ser derivada de outra classe. A classe derivada herda membros da classe base, mas a acessibilidade desses membros herdados depende tanto do modificador de acesso utilizado na classe base quanto do tipo de herança.

Base Class publicBase Class protectedBase Class private
public

Public in Derived Class

Protected in Derived Class

Not Accessible

protected

Protected in Derived Class

Protected in Derived Class

Not Accessible

private

Private in Derived Class

Private in Derived Class

Not Accessible

public.cpp

public.cpp

protected.cpp

protected.cpp

private.cpp

private.cpp

copy
12345
class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };

Conclusão sobre Controle de Acesso e Herança

Em herança orientada a objetos, membros private de uma classe base são inacessíveis para classes derivadas, protegendo-os contra modificação ou acesso. Membros Protected só podem ser acessados dentro da subclasse, enquanto membros public podem ser acessados externamente. É possível experimentar isso utilizando o trecho de código abaixo.

main.cpp

main.cpp

copy
1234567891011121314151617181920
class Base { public: int publicAttribute; protected: int protectedAttribute; private: int privateAttribute; }; class PublicDerived : public Base {}; class ProtectedDerived : protected Base {}; class PrivateDerived : private Base {}; int main() { PublicDerived obj1; ProtectedDerived obj2; PrivateDerived obj3; }
Note
Nota

Membros Protected, acessíveis dentro de classes derivadas e ainda mais derivadas, funcionam como uma ponte entre elementos private e public.

Construtores e destrutores são invocados automaticamente para objetos da classe derivada, garantindo a correta inicialização e liberação de recursos. Para acessar diretamente esses elementos da classe base, construtores e destrutores devem ser declarados como public.

question mark

O que determina como os membros de uma classe base podem ser acessados por uma classe derivada?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain the difference between public, protected, and private access modifiers?

How does the type of inheritance affect member accessibility in derived classes?

Can you provide an example demonstrating these access modifiers in code?

bookModificadores de Acesso na Herança

Deslize para mostrar o menu

Modificadores de acesso desempenham um papel crucial na programação orientada a objetos, especialmente na herança. Eles determinam como os membros (atributos e métodos) de uma classe base podem ser acessados pelas classes derivadas. Compreender esses modificadores é essencial para projetar classes eficazes e manter a encapsulação e integridade dos dados.

Tipos de acesso na herança

Uma classe pode ser derivada de outra classe. A classe derivada herda membros da classe base, mas a acessibilidade desses membros herdados depende tanto do modificador de acesso utilizado na classe base quanto do tipo de herança.

Base Class publicBase Class protectedBase Class private
public

Public in Derived Class

Protected in Derived Class

Not Accessible

protected

Protected in Derived Class

Protected in Derived Class

Not Accessible

private

Private in Derived Class

Private in Derived Class

Not Accessible

public.cpp

public.cpp

protected.cpp

protected.cpp

private.cpp

private.cpp

copy
12345
class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };

Conclusão sobre Controle de Acesso e Herança

Em herança orientada a objetos, membros private de uma classe base são inacessíveis para classes derivadas, protegendo-os contra modificação ou acesso. Membros Protected só podem ser acessados dentro da subclasse, enquanto membros public podem ser acessados externamente. É possível experimentar isso utilizando o trecho de código abaixo.

main.cpp

main.cpp

copy
1234567891011121314151617181920
class Base { public: int publicAttribute; protected: int protectedAttribute; private: int privateAttribute; }; class PublicDerived : public Base {}; class ProtectedDerived : protected Base {}; class PrivateDerived : private Base {}; int main() { PublicDerived obj1; ProtectedDerived obj2; PrivateDerived obj3; }
Note
Nota

Membros Protected, acessíveis dentro de classes derivadas e ainda mais derivadas, funcionam como uma ponte entre elementos private e public.

Construtores e destrutores são invocados automaticamente para objetos da classe derivada, garantindo a correta inicialização e liberação de recursos. Para acessar diretamente esses elementos da classe base, construtores e destrutores devem ser declarados como public.

question mark

O que determina como os membros de uma classe base podem ser acessados por uma classe derivada?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 2
some-alt