Declaraciones y definiciones (C++)

declaraciones indica al compilador que existe un elemento o un nombre de programa.definiciones especifica qué código o datos describe el nombre.Un nombre debe aparecer antes de poderse utilizar.

Declaraciones

Una declaración presenta uno o más nombres de un programa.Las declaraciones pueden aparecer varias veces en un programa.Por consiguiente, las clases, estructuras, los tipos enumerados, y otros tipos definidos por el usuario se pueden declarar para cada unidad de compilación.la restricción en esta declaración múltiple es que todas las declaraciones deben ser idénticas.Las declaraciones también actúan como definiciones, excepto cuando la declaración:

  1. Es un prototipo de función (una declaración de función sin el cuerpo de la función).

  2. contiene el especificador de extern pero ningún inicializador (los objetos y las variables) o el cuerpo de la función (funciones).Esto significa que la definición no es necesariamente en la unidad de traducción actual y proporciona vinculación externo de nombre.

  3. Es de un miembro de datos estático en una declaración de clase.

    Dado que los miembros de datos estáticos de la clase son variables discretas compartidas por todos los objetos de la clase, deben definirse y se inicializan fuera de la declaración de clase.(Para obtener más información sobre las clases y miembros de clase, vea clases.)

  4. Es una declaración del nombre de clase sin la siguiente definición, como class T;.

  5. es una instrucción de typedef .

Los ejemplos de las declaraciones que también son definiciones son:

// Declare and define int variables i and j.
int i;
int j = 10;

// Declare enumeration suits.
enum suits { Spades = 1, Clubs, Hearts, Diamonds };

// Declare class CheckBox.
class CheckBox : public Control
{
public:
            Boolean IsChecked();
    virtual int     ChangeState() = 0;
};

algunas declaraciones que no son definiciones son:

extern int i;
char *strchr( const char *Str, const char Target );

Definiciones

una definición es una especificación única de un objeto o una variable, función, clase, o enumerador.Dado que las definiciones deben ser únicas, un programa sólo puede contener una definición para un elemento de programa dado.Puede haber que permite a correspondencia entre las declaraciones y definiciones.Hay dos casos en los que un elemento de programa se puede declarar y no definido:

  1. Se declara pero nunca se hace referencia a una función con una llamada de función o una expresión que toma la dirección de función.

  2. Una clase solo se utiliza de forma se sabe que no requiere su definición.Sin embargo, la clase debe declararse.El código siguiente muestra un caso:

    // definitions.cpp
    class WindowCounter;   // Forward reference; no definition
    
    class Window
    {
       // Definition of WindowCounter not required
       static WindowCounter windowCounter;
    };
    
    int main()
    {
    }
    

Vea también

Referencia

Conceptos básicos