You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
memoria necesaria para alojar el objeto y <strong>de</strong>vuelve su dirección, en forma <strong>de</strong> puntero, al objeto en<br />
cuestión.<br />
Los constructores normalmente implican la aplicación <strong>de</strong> new.<br />
p =new int(9) //p es un puntero a int inicializado a 9<br />
ca<strong>de</strong>na cad1("hola");<br />
ca<strong>de</strong>na *cad2=new ca<strong>de</strong>na;<br />
Un objeto creado con new no tiene ámbito, es <strong>de</strong>cir, no se <strong>de</strong>struye automáticamente al salir fuera <strong>de</strong>l<br />
ámbito, sino que existe hasta que se <strong>de</strong>struye explícitamente mediante el operador <strong>de</strong>lete.<br />
class ca<strong>de</strong>na<br />
{<br />
char *datos;<br />
public:ca<strong>de</strong>na(int);<br />
~ca<strong>de</strong>na();<br />
};<br />
ca<strong>de</strong>na::ca<strong>de</strong>na(int lon)<br />
{<br />
datos=new char[lon];<br />
}<br />
ca<strong>de</strong>na::~ca<strong>de</strong>na()<br />
{<br />
<strong>de</strong>lete datos;<br />
}<br />
Funciones amigas<br />
Una función amiga es una función no miembro <strong>de</strong> una clase que pue<strong>de</strong> tener acceso a las partes<br />
privadas <strong>de</strong> una clase; se <strong>de</strong>be <strong>de</strong>clarar como amiga <strong>de</strong> la clase mediante la palabra reservada friend.<br />
Las funciones amigas se <strong>de</strong>claran situando su prototipo <strong>de</strong> función en la clase <strong>de</strong> la que son amiga<br />
precediéndola con la palabra reservada friend. Por ejemplo:<br />
class cosa<br />
{<br />
int datos;<br />
public:<br />
friend void cargar (cosa& t, int x);<br />
};<br />
void cargar(cosa& t, int x)<br />
{<br />
t.datos=x;<br />
}<br />
Como la función cargar se <strong>de</strong>clara amiga <strong>de</strong> la clase cosa pue<strong>de</strong> acce<strong>de</strong>r al miembro privado datos.<br />
Las razones fundamentales para utilizar funciones amigas es que algunas funciones necesitan acceso<br />
privilegiado a más <strong>de</strong> una clase. Una segunda razón es que las funciones amigas pasan todos sus<br />
argumentos a través <strong>de</strong> la lista <strong>de</strong> argumentos y cada valor <strong>de</strong> argumento se somete a la conversión<br />
<strong>de</strong> asignación.<br />
Clases amigas<br />
No sólo pue<strong>de</strong> ser una función, amiga <strong>de</strong> una clase, también una clase completa pue<strong>de</strong> ser amiga <strong>de</strong><br />
otra clase. En este caso todas las funciones <strong>de</strong> la clase amiga pue<strong>de</strong>n acce<strong>de</strong>r a las partes privadas <strong>de</strong><br />
la otra clase.