Sei sulla pagina 1di 3

DECLARACIÓN DE LOS MÉTODOS

Desgraciadamente, la división entre interfaz e implementación no es tan limpia en C++


como en el seudocódigo. Las clases se definen en C++ mediante una construcción
class dividida en dos partes: una parte privada (prívate) que contiene algunos detalles
de la implementación, y una parte pública (public) que contiene todo el interfaz.

class NombreClase {

Private:

// Implementación de la clase

// Solamente los atributos

Public:

// Interfaz de la clase

};

En la parte privada de la construcción class aparecen solo los atributos de la clase y


algunos tipos intermedios que puedan ser necesarios. En C++, la implementación de
los 4 Clases y objetos en C++ métodos de la clase se facilita aparte. En la parte
pública, suelen aparecer solamente las declaraciones (cabeceras) de los métodos de
la clase. Por ejemplo, la siguiente es una definición de la clase CComplejo que
representa números complejos:

Class CComplejo {

Private:

// Atributos

Doublé real, imag;

// Los métodos se implementan aparte

Public:

Void asigna_real (double r);

Void asigna_imag (double i);

Double parte_real ();

Double parte_imag ();

Suma (const CComplejo& a, const CComplejo& b);


Pasar por referencia frente a pasar por valor

De forma predeterminada, cuando un tipo de valor se pasa a un método, se pasa una


copia en lugar del propio objeto. Por lo tanto, los cambios realizados en el argumento
no tienen ningún efecto en la copia original del método de llamada. Puede pasar un
tipo de valor por referencia mediante la palabra clave ref. Para obtener más
información, vea Pasar parámetros de tipo de valor (Guía de programación de C#).
Para obtener una lista de tipos de valor integrados, vea Tabla de tipos de valor
(Referencia de C#).

Cuando se pasa un objeto de un tipo de referencia a un método, se pasa una


referencia al objeto. Es decir, el método no recibe el objeto concreto, recibe un
argumento que indica la ubicación del objeto. Si cambia un miembro del objeto
mediante esta referencia, el cambio se refleja en el argumento del método de llamada,
incluso si pasa el objeto por valor.

Crea un tipo de referencia mediante la palabra clave class, como se muestra en el


siguiente ejemplo:

C#

Copiar

public class SampleRefType

public int value;

Ahora, si se pasa un objeto basado en este tipo a un método, también se pasa una
referencia al objeto. En el ejemplo siguiente se pasa un objeto de tipo SampleRefType
al método ModifyObject:

C#

Copiar

public static void TestRefType()

SampleRefType rt = new SampleRefType();

rt.value = 44;

ModifyObject(rt);

Console.WriteLine(rt.value);

Potrebbero piacerti anche