¿Cómo construir un modelo de estructura en c ++

Video: Tutorial C - 27. Estructuras (Struct)

plantillas de la estructura tienen muchos usos interesantes, como la creación de un repositorio de datos que no depende de un tipo particular. los StructureTemplate ejemplo muestra uno de tales usos.

#incluir using namespace std-plantillastruct Volume {T Altura-T-T anchura longitud-Volume () {height = 0-width = 0-length = 0-} T getVolume () {altura de retorno * width * longitud-} T getVolume (TH, TW, TL ) {height = H-width = W-length = altura L-retorno * width * longitud -}} - int main () {Volumen primero-cout lt; lt; "Primer volumen: " lt; lt; first.getvolume () lt; lt; endl-first.height = 2-first.width = 3-first.length = 4-cout lt; lt; "Primer volumen: " lt; lt; first.getvolume () lt; lt; endl-Volume segundo-cout lt; lt; "Segundo volumen: " lt; lt; second.getvolume (2.1, 3.2, 4.3) lt; lt; endl-cout lt; lt; "Altura: " lt; lt; second.height lt; lt; endl-cout lt; lt; "Anchura: " lt; lt; second.width lt; lt; endl-cout lt; lt; "Longitud: " lt; lt; second.length lt; lt; endl retorno 0-}

En este caso, la estructura contiene valores de altura, anchura, y longitud de datos que el código puede utilizar para determinar el volumen. La estructura incluye un constructor para inicializar los valores, por lo que incluso si alguien llama getVolume () sin inicializar la estructura, nada malo va a pasar.

La estructura permite el acceso independiente de cada uno de los valores de los datos. Puede establecer o conseguirlos, según sea necesario.

los getVolume () la función está sobrecargado. Se le puede llamar con o sin valores de entrada. El código en principal() pruebas, la estructura a fondo. Esto es lo que se ve como salida de este ejemplo:

En primer volumen: volumen 0First: volumen 24Second: 28.896Height: 2.1Width: 3.2Length: 4.3

Puede utilizar estructuras para otro propósito interesante. El estándar de C ++ dice que no se puede crear una typedef modelo. Por ejemplo, el siguiente código produce un error cuando intenta compilar:

Video: C++: STRUCT [ Programación C++ ][23]

modeloMapa typedef MyDef-

Cuando intenta compilar el código en el Code :: Blocks, verá el siguiente error:

declaración de plantilla de `typedef`: error

Sin embargo, se puede definir una typedef dentro de un modelo de estructura. los StructureTemplate2 ejemplo de código muestra cómo aquí.

#incluir #incluir using namespace std-plantillaMyDef struct {typedef mapa Tipo -} - int main () {MyDef:: Tipo matrimonios matrimonios ["tom"] = "Suzy"-marriages ["Acosar"] = "Harriet"-cout lt; lt; matrimonios ["tom"] lt; lt; endl-cout lt; lt; matrimonios ["Acosar"] lt; lt; endl retorno 0-}

Este ejemplo supera las limitaciones de la C ++ mediante la colocación de la typedef dentro de struct, MyDef. La misma estructura puede contener cualquier número de typedef entradas.

Video: Estructuras de repetición en C

Usando un typedef de esta manera hace que sea más fácil trabajar con mapa. Todo lo que necesita preocuparse es el tipo de valor - el tipo de clave que ya se define como cuerda.

Artículos Relacionados