Strings i c++

Tags:    c++ asp.net

Hejsa...
Jeg sad lige og legede med en klasse, og jeg kan ikke rigtigt kompilere den.
Den ser sådan her ud:
Fold kodeboks ind/udKode 



der skal selvfølgelig flere ting på denne klasse, men mit problem er, at den ikke vil kompilere dette stykke...
Jeg bruger dev-c++.

Jeg har også et andet spørgsmål...
Kan man ikke, ligesom java, skrive alle sine funktioner inde i selve klassen?
eks.
Fold kodeboks ind/udKode 



kan man ikke skrive det samme i c++ i stedet for at skrive:
Test::hentNavn() ... osv...

Grunden til at jeg spørger, er fordi at jeg mener jeg har læst, at hvis man skriver sin funktion fuldt ud under class Tester {... så bliver de til inline og derfor kopieres hele funktionen ind i den kompilerede fil, alle de steder den bliver kaldt (dvs. at den kommer til at fylde meget på et tidspunkt..)

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Du skal huske et ; efter din klasse og så skal du bruge namespace std;
ellers kan den ikke finde ud af <string> biblioteket.

Jeg tror det vil fjerne dine fejl.





Du skal huske et ; efter din klasse og så skal du bruge namespace std;
ellers kan den ikke finde ud af <string> biblioteket.

Jeg tror det vil fjerne dine fejl.



Tak... det virkede, men hvordan laver jeg så en klasse opdeling?
Med det mener jeg, at den klasse (Tester) har ikke nogen main metoden, og derfor får jeg endnu en fejl når jeg kompilere den.
Kan man ikke lave en klasse opdeling på en sådan måde, som i java? dvs. en class til hver fil?

Jeg har nemlig ikke lyst til at rode definationen på alle mine nye objekter ind i samme klasse, som den der skal eksekvere den...
Nogen der ved hvordan man opdeler dette? Og får det kompileret?

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Du kan f.eks. lave 2 filer, en header og en cpp.
Din header skal så have dit interface til klassen altså det dú lavede før og din cpp (der iøvrigt skal have din header inkluderet) kan så have alle methoderne alla : string tester::hentnavn(){}


Så inkludere du bare din "tester.h" (ikke med <>;) i din main.


Altså: en fil der hedder tester.h
en der hedder tester.cpp (#include "tester.h")

og så #include "tester.h"; i din main

Tester filerne skal ligge i samme folder som din main.


[Redigeret d. 07/09-03 23:18:08 af Agge Kempff]



Ja, men tester.cpp bliver ikke kompileret ordentligt (får en linker fejl). Kan dette være fordi jeg ikke har en int main() med i den fil? Den skal jo ikke kunne eksekveres, men der skal bare oprettes et objekt af den...

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Hmm...den behøver ihvertfald ikke en main for at kunne compiles (eller den skal IKKE have en main).


Men hvis du benytter f.eks. strings i din unit (headeren og cppen) så skal de biblioteker inkluderes der også da den bliver compilet for sig.





Hmm...den behøver ihvertfald ikke en main for at kunne compiles (eller den skal IKKE have en main).


Men hvis du benytter f.eks. strings i din unit (headeren og cppen) så skal de biblioteker inkluderes der også da den bliver compilet for sig.





nu hvor du alligevel roder med class

bør du nok lige huske at indsætte en constructor og en destructor.

husk at du kan have mere end en constructor med forskellige arguments.

hvis du ikke selv laver en gør compileren det selv, men det er god kotyme at huske dem

og det letter overskuelighede af koden samt sikre dig at du ved nøjaktig hvilke arguments der

bliver passed.


mvh Carsten Andersen
~Life is to short for windows~



Glemte lige at sige at når du erklære funktioner i en klasse så

er det kun prototyper du erklærer.

du har en return med i din prototype erklæring og det vil i nogen kompilerre give en fejl.


~Life is to short for windows~



t