Incluso si es un estudiante, vale la pena tratar de responder, ya que es un problema complejo no es tan fácil, al menos para un nuevo Visitador de C++ :)
Clases en C++ servir a una intersección de dos paradigmas de diseño,
1) ADT :: que significa básicamente un nuevo tipo, algo así como enteros 'int' o números reales 'doble' o incluso un nuevo concepto como 'fecha'. en este caso la clase simple debe tener este aspecto,
class NewDataType
{
public:
// public area. visible to the 'user' of the new data type.
.
.
.
private:
// no one can see anything in this area except you.
.
.
.
};
este es el esqueleto más básica de un ADT ... por supuesto puede ser más simple, ignorando el área pública! y borrar los modificadores de acceso (público, privado) y todo será privado. pero eso no tiene sentido. ¡Porque NewDataType se vuelve inútil! imagine un 'int' que puede declarar pero NO PUEDE hacer nada con él.
Luego, necesita algunas herramientas útiles que básicamente no son necesarias para la existencia de NewDataType, pero las usa para que su tipo se parezca a cualquier tipo 'primitivo' en el idioma.
el primero es el Constructor. El constructor es necesario en muchos lugares del idioma. mira int y vamos a tratar de imitar su comportamiento.
int x; // default constructor.
int y = 5; // copy constructor from a 'literal' or a 'constant value' in simple wrods.
int z = y; // copy constructor. from anther variable, with or without the sametype.
int n(z); // ALMOST EXACTLY THE SAME AS THE ABOVE ONE, it isredundant for 'primitive' types, but really needed for the NewDataType.
cada línea de las líneas anteriores es una declaración, la variable se construye allí.
y al final se imaginan las variables int anteriores en una función, esa función se llama 'diversión',
int fun()
{
int y = 5;
int z = y;
int m(z);
return (m + z + y)
// the magical line.
}
que ver la línea mágica, aquí se puede indicar al compilador cualquier cosa que usted quiere! después de hacer cada cosa y su NewDataType no es más útil para el ámbito local como en la función, KILL IT. ¡un ejemplo clásico sería liberar la memoria reservada por 'nuevo'!
por lo que nuestro NewDataType muy simple se convierte,
class NewDataType
{
public:
// public area. visible to the 'user' of the new data type.
NewDataType()
{
myValue = new int;
*myValue = 0;
}
NewDataType(int newValue)
{
myValue = new int;
*myValue = newValue;
}
NewDataType(const NewDataType& newValue){
myValue = new int;
*myValue = newValue.(*myValue);
}
private:
// no one can see anything in this area except you.
int* myValue;
};
Ahora bien, este es el esqueleto muy básico, para empezar a construir una clase útil tiene que proporcionar las funciones públicas.
hay una gran cantidad de pequeñas herramientas a tener en cuenta en la construcción de una clase en C++,
. . . .
2) Objeto :: lo que significa básicamente un nuevo tipo, pero la diferencia es que pertenece a hermanos, hermanas, ancestros y descendientes. mira 'doble' e 'int' en C++, 'int' es un sol de 'doble' porque cada 'int' es 'doble' al menos en concepto :)
¡Esto tiene que ser tarea! – xian
Apenas puedo creer que no haya podido encontrar ejemplos mediante Google sobre ese tema. La mayoría de los ejemplos a continuación, solo copiados aquí, de tutoriales en la web. –
en serio, no debe haberse visto muy duro. –