Quem sou eu

Minha foto
Rio de Janeiro, RJ, Brazil
Estudante do 8º periodo de Sistemas de Informação.

BEM VINDO!!

BEM VINDO AO BLOGUE DO RAFAEL,
UM BLOG COM BASTANTE CONTEÚDO
E QUE PODE LHE AJUDAR MUITO!!

quinta-feira, 6 de janeiro de 2011

Herança - Exemplo

   Exemplo 1

// mostra acesso público, privado e protegido à classe-base
#include
using namespace std;
class Base
{
           protected : int secreto;
           private : int ultraSecreto;
           public : int publico;
};
class Derivada1 : public Base
{
           private:
                      int a, b, c;
           public:
                      Derivada1( )
                      {
                                   a = secreto;        // ok
                                   //b = ultraSecreto; // erro: não acessível
                                   c = publico;        // ok
                      }
};                                                                           
  
class Derivada2 : private Base
{
           private:
                     int a, b, c;
           public:
                     Derivada2( )
                     {
                                  a = secreto;        // ok
                                  //b = ultraSecreto; // erro: não acessível
                                  c = publico;        // ok
                     }
};
class Derivada3 : protected Base
{
           private:
                     int a, b, c;
           public:
                     Derivada3( )
                     {
                                  a = secreto;        // ok
                                  //b = ultraSecreto; // erro: não acessível
                                  c = publico;        // ok
                     }
                                                                            
};
  
int main( )
{
   int x;
   Derivada1 obj1;              // Derivada1 é pública
   //x = obj1.secreto;                 // erro: não acessível
   //x = obj1.ultraSecreto;         // erro: não acessível
   obj1.publico = 1;                   // ok
   x = obj1.publico;
   Derivada2 obj2;              // Derivada2 é privada
   //x = obj2.secreto;           // erro: não acessível
   //x = obj2.ultraSecreto;      // erro: não acessível
   //x = obj2.publico;           // erro: não acessível
   Derivada3 obj3;              // Derivada3 é protegida
   //x = obj3.secreto;           // erro: não acessível
   //x = obj3.ultraSecreto;      // erro: não acessível
   //x = obj3.publico;           // erro: não acessível
   cout << "x = obj1.publico: " << x << endl << endl;
   system("pause");
   return 0;
                                                            
 }

Nenhum comentário:

Postar um comentário

Powered By Blogger