Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 172 — #210<br />
✐<br />
Capítulo 5. Ocultar la implem<strong>en</strong>tación<br />
programador cli<strong>en</strong>te sólo a <strong>en</strong>lazar de nuevo sus programas.<br />
5.2. Control de acceso <strong>en</strong> <strong>C++</strong><br />
<strong>C++</strong> introduce tres nuevas palabras clave para establecer las fronteras de una<br />
estructura: public, private y protected. Su uso y significado es bastante claro.<br />
Los especificadores de acceso se usan solo <strong>en</strong> la declaración de las estructuras, y<br />
cambian las fronteras para todas las declaraciones que los sigu<strong>en</strong>. Cuando use un<br />
especificador de acceso, debe ir seguido de «:»<br />
public significa que todas las declaraciones de miembros que sigu<strong>en</strong> estarán<br />
accesibles para cualquiera. Los miembros publicson como miembros de una estructura.<br />
Por ejemplo, las sigui<strong>en</strong>tes declaraciones de estructuras son idénticas:<br />
//: C05:Public.cpp<br />
// Public is just like C’s struct<br />
struct A {<br />
int i;<br />
char j;<br />
float f;<br />
void func();<br />
};<br />
void A::func() {}<br />
struct B {<br />
public:<br />
int i;<br />
char j;<br />
float f;<br />
void func();<br />
};<br />
void B::func() {}<br />
int main() {<br />
A a; B b;<br />
a.i = b.i = 1;<br />
a.j = b.j = ’c’;<br />
a.f = b.f = 3.14159;<br />
a.func();<br />
b.func();<br />
} ///:~<br />
La palabra clave private, por otro lado, significa que nadie podrá acceder a ese<br />
miembro excepto usted, el creador del tipo, d<strong>en</strong>tro de los métodos de ese tipo. private<br />
es una pared <strong>en</strong>tre usted y el programador cli<strong>en</strong>te; si algui<strong>en</strong> int<strong>en</strong>ta acceder a<br />
un miembro private, obt<strong>en</strong>drá un error <strong>en</strong> tiempo de compilación. En struct B<br />
<strong>en</strong> el ejemplo anterior, podría querer hacer partes de la repres<strong>en</strong>tación (es decir, los<br />
atributos) ocultos, accesibles solo a usted:<br />
//: C05:Private.cpp<br />
// Setting the boundary<br />
172<br />
✐<br />
✐<br />
✐<br />
✐