Como construir um modelo de Estrutura em C ++
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 aqui mostra um tal uso.
#incluirusando namespace std-template struct Volume {T Altura-T largura-comprimento T-Volume () {height = 0 width =-0-length = 0-} getVolume T () {height retorno * largura * comprimento-} T getVolume (TH, TW, TL ) {height = H-width = W-length = altura L-retorno * largura * comprimento -}} - int main () {Volume primeira cout lt; lt; "Primeiro de volume:" lt; lt; first.getvolume () lt; lt; endl-first.height = 2-first.width = 3-first.length = 4-cout lt; lt; "Primeiro de 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 pode usar para determinar 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.
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() ensaios, a estrutura completamente. Aqui está o que você vê como saída a partir deste exemplo:
Primeiro volume: volume 0First: o volume 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-
Ao tentar compilar este código no Code :: Blocks, você vê o seguinte erro:
declaração de modelo de 'typedef': Erro
No entanto, você pode definir uma typedef dentro de um modelo de estrutura. o StructureTemplate2 exemplo de código aqui mostra como.
#incluir#incluir
Este exemplo supera as limitações do C ++, colocando o typedef dentro do struct, MyDef. A mesma estrutura pode conter qualquer número de typedef entradas.
Usando um typedef desta maneira faz com que seja mais fácil de trabalhar mapa. Tudo que você precisa se preocupar é o tipo de valor - o tipo de chave já está definido como corda.