// 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