Video: Como Montar um Pebolim de Lego!!! 2025
Strukturskabeloner har mange interessante anvendelser, såsom oprettelse af et datalager, der ikke afhænger af en bestemt type. StructureTemplate-eksemplet her viser en sådan anvendelse.
#include bruger navneområde std; template struct Lydstyrke {T højde; T bredde; T længde; Volumen () {højde = 0; bredde = 0; længde = 0;} T getvolume () {returhøjde * bredde * længde;} T getvolume (T H, T W, T L) {højde = H; bredde = W; længde = L; returhøjde * bredde * længde;}}; int main () {Volumen først; cout << "første volumen:" << først. getvolume () << endl; først. højde = 2; først. bredde = 3; først. længde = 4; cout << "første volumen:" << først. getvolume () << endl; Volume anden; cout << "andet volumen:" << sekund. getvolume (2. 1, 3. 2, 4. 3) << endl; cout << "højde:" << sekund. højde << endl; cout << "bredde:" << sekund. bredde << endl; cout << "længde:" << sekund. længde << endl; returner 0;}
I dette tilfælde indeholder strukturen højde-, bredde- og længdedata, som koden kan bruge til at bestemme lydstyrken. Strukturen indeholder en konstruktor til at initialisere værdierne, så selvom nogen kalder getvolume () uden at initialisere strukturen, sker der ikke noget dårligt.
Strukturen tillader uafhængig adgang til hver af dataværdierne. Du kan indstille eller få dem efter behov.
Funktionen getvolume () er overbelastet. Du kan kalde det med eller uden input værdier. Koden i main () tester strukturen grundigt. Her er hvad du ser som output fra dette eksempel:
Første volumen: 0 Første volumen: 24 Andet volumen: 28. 896 Højde: 2. 1 Bredde: 3. 2 Længde: 4. 3
Du kan bruge strukturer til et andet interessant formål. C + + -standarden siger, at du ikke kan oprette en typedef-skabelon. Følgende kode producerer f.eks. En fejl, når du forsøger at kompilere det:
skabelon typedef map MyDef;
Når du forsøger at kompilere denne kode i kode:: Blokke ser du følgende fejl:
fejl: skabelonerklæring af 'typedef'
Du kan dog definere en typedef i en strukturskabelon. StructureTemplate2 eksempelkoden her viser hvordan.
#include # include using namespace std; template struct MyDef {typedef map Type;}; int main () {MyDef:: Type ægteskaber; ægteskaber ["Tom"] = "Suzy"; ægteskaber ["Harry"] = "Harriet"; cout << ægteskaber ["Tom"] << endl; cout << ægteskaber ["Harry"] << endl; returner 0;}
Dette eksempel overvinder C ++-begrænsningerne ved at placere typedef i strukturen MyDef. Den samme struktur kan indeholde et hvilket som helst antal typedef-poster.
Brug en typedef på denne måde gør det lettere at arbejde med kort.Alt du skal bekymre dig om er værditypen - nøgletypen er allerede defineret som streng.