*   >> Leitura Educação Artigos >> science >> programação

Especificadores de acesso em C ++ Classes

private: int num1; int num2; público: int add () {num1; num2 = 3; int sum = num1 + num2; retornar soma; }}; int main () {obj Calculadora; obj.num1 = 2; resultado int = obj.add (); cout retornar 0; } A segunda linha na função principal é errado porque nessa linha, principais tenta acessar (utilização como identificador) o membro privado, num1. O especificador de acesso protegido Se um membro de uma classe é público, ele pode ser acessado por uma função externa, incluindo uma classe derivada.

Se um membro de uma classe é privada, não pode ser acessado por uma função externa; até mesmo uma classe derivada não pode acessá-lo. A questão é, se uma classe derivada não é realmente ser capaz de acessar um membro particular da sua classe base (já que a classe classe e base de derivados estão relacionados)? Bem, para resolver este problema que você tem outra chamada especificador de acesso, protegida. Se um membro de uma classe esteja protegido, ele pode ser acessado por uma classe derivada, mas ele não pode ser acessado por uma função externa.

Ele também pode ser acessado por membros dentro da classe. O código a seguir ilustra como uma classe derivada pode acessar um membro protegido de uma classe base: #include using namespace std; class Calculator {protected: int num1; int num2; }; classe ChildCalculator: Calculadora pública {public: int add () {num1 = 2; num2 = 3; int sum = num1 + num2; retornar soma; }}; int main () {ChildCalculator myChildObj; resultado int = myChildObj.add (); cout retornar 0; } A classe base tem apenas duas propriedades e nenhum método; estas propriedades estão protegidos.

A classe derivada tem um método e nenhuma propriedade. Dentro da classe derivada, as propriedades protegidas da classe base são usados ​​como identificadores. Geralmente, quando uma classe é derivado utilizando um membro de uma classe de base, que é um método de classe derivada que está a utilizar o elemento, como no presente exemplo. O código acima é OK.

O código a seguir não irá compilar, porque a linha 2 na função main () tenta acessar um membro protegido da classe base: #include using namespace std; class Calculator {protected: int num1; int num2; }; classe ChildCalculator: Calculadora pública {public: int add () {num1; num2 = 3; int sum = num1 + num2; retornar soma; }}; int main () {obj Calculadora; obj.num1 = 2; ChildCalculator myChildObj; resultado int = myChildObj.add (); cout retornar 0; } Uma função externa não pode acessar um membro protegido de uma classe (a cla

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.