11. oktober 2001 - 10:50Der er
27 kommentarer og 1 løsning
Lister i VC++?
Jeg skal bruge en generel liste der kan holde styr på nogle objekter.
Listen vil jeg opbygge som en klassisk hægtet-liste, hvor hvert link indeholder reference til næste link og en slags pointer. Denne pointer havde jeg forestillet mig i første omgang at være af typen int*.
Når listen anvendes skal den kun indeholde en type objekter, det vil sige at jeg altid kender typen af objektet jeg får returneret en pointer til.
Spørgsmålet er så om det vil fungere at anvende denne liste til at holde styr på pointere til andre typer objekter, hvis jeg selv holder styr på hvor der skal castes?
Det vil sige at jeg bygger en generel liste der hlder styr på pointere til int, og anvender disse int-pointere til at refere til objekter af en anden type.
Jeg arbejder i VC++ som har nogle problemer med at anvende templates. Derfor forsøger jeg denne workaround.
jeg er lige ved at kaste et eksempel sammen med en liste af strenge. Jeg får et problem når jeg vil have en streng fra listen ind i en messagebox. Jeg kan ikke caste den.. Skal man gøre noget specielt?
Hvis du vil skrive ud til debug winduet, skal du bruge TRACE(\"Skriv\"); (fungerer ligesom sprintf og CString\'s Format, så du kan let skrive \'ikke-streng\' værdier ud!
=> billeschou I nogle tilfælde, ja! Dog ikke her hvor der kun anvendes denne klasse... \"using namespace std\" kan give problemer hvis der anvendes andre namespaces, hvis navn også findes i std\'s namespace (fx ved brug af nogle MFC-klasser!!!)
Jeg har i øvrigt ladet mig fortælle at det kan forlænge kompileringstiden! (jeg har dog ikke lavet nogle tests herom...)
det er selvfølgelig rigtigt, men hvis man laver større programmer hvor man f.eks. inddrager std::cout og std::cin osv. Kan man slippe for at skrive det samme en masse gange må det være en fordel. Det problem du nævner opstår vel kun hvis man benytter flere namespaces samtidig... noget der sker relativt sjældent tror jeg
Nu nævnte du selv \"større programmer\". Det er jo netop i \"store\" programmer sandsynligheden for at anvende flere namespaces er størst.
Den applikation jeg netop sidder og arbejder på anvender både std C++, MFC, STL, COM+ og CORBA. Hvis jeg ændrer mine using... til using namespace std, kan jeg ikke kompilere skidtet! Jeg er naturligvis enig i, at det er irriterende at skrive alle disse \"using\" hele tiden, men en simpel måde at komme uden om det på, er at lave en header-fil, fx STLInc.h, og her skrive sine STL includes og using... Man kan så nøjes med at include denne fil der hvor man skal bruge klasserne!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.