Como construir um modelo de estrutura em c ++

Video: Programação em C/C++ - Aula 26 - Estruturas de Dados: Pilha Estática

modelos de estrutura têm muitos usos interessantes, como a criação de um repositório de dados que não depende de um tipo particular. o StructureTemplate exemplo mostra aqui um tal uso.

#incluir using namespace std-modelostruct Volume {T altura-largura T-T-comprimento de volume () {= 0 altura-largura = 0-length = 0-} getVolume T () {altura retorno * largura * comprimento-} T getVolume (TH, TW, TL ) {altura = H = largura W de comprimento = altura L-retorno * largura * comprimento -}} - int main () {Volume primeira cout lt; lt; "Primeiro volume: " lt; lt; first.getvolume () lt; lt; endl-first.height = 2-first.width = 3-first.length = 4-cout lt; lt; "Primeiro volume: " lt; lt; first.getvolume () lt; lt; endl-Volume segunda cout lt; lt; "Segundo volume: " 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; "Largura: " lt; lt; second.width lt; lt; endl-cout lt; lt; "Comprimento: " lt; lt; second.length lt; lt; endl-retorno 0-}

Neste caso, a estrutura contém valores de altura, largura e comprimento de dados que o código podem ser usadas para determinar o volume. A estrutura inclui um construtor para inicializar os valores, por isso mesmo, se alguém chama getVolume () sem inicializar a estrutura, nada de ruim vai acontecer.

Video: C++ - Aula 33 - Struct - Parte 1

A estrutura permite um acesso independente de cada um dos valores de dados. Você pode definir ou obtê-los, conforme necessário.

o getVolume () função está sobrecarregado. Você pode chamá-lo com ou sem valores de entrada. O código na a Principal() testa a estrutura completamente. Aqui está o que você vê como saída a partir deste exemplo:

Primeiro volume: volume de 0First: volume de 24Second: 28.896Height: 2.1Width: 3.2Length: 4.3

Você pode usar estruturas para outra finalidade interessante. padrão do C ++ diz que você não pode criar um typedef modelo. Por exemplo, o código a seguir produz um erro quando você tenta compilá-lo:



modelomapa typedef MyDef-

Quando você tenta compilar este código no Code :: Blocks, você vê o seguinte erro:

Video: Aula 11 C++ | Estrutura de Dados: Criando Menu, While, Switch, case, break

declaração de modelo de `typedef`: Erro

No entanto, você pode definir um typedef dentro de um modelo de estrutura. o StructureTemplate2 exemplo de código aqui mostra como.

Video: Programar em C - Passar e Receber Estruturas à uma Função - Aula 42

#incluir #incluir using namespace std-modeloMyDef struct {typedef mapa Tipo -} - int main () {MyDef:: Tipo casamentos-casamentos ["Tom"] = "Suzy"-marriages ["Harry"] = "Harriet"-cout lt; lt; casamentos ["Tom"] lt; lt; endl-cout lt; lt; casamentos ["Harry"] lt; lt; endl-retorno 0-}

Este exemplo supera as limitações da C ++, colocando o typedef dentro do struct, MyDef. A mesma estrutura pode conter qualquer número de typedef entradas.

Usando um typedef desta forma torna mais fácil trabalhar com mapa. Tudo que você precisa se preocupar é o tipo de valor - o tipo de chave já está definido como corda.


Publicações relacionadas