Virker dette?

Tags:    c++

<< < 12 > >>
Hej alle.

Jeg sidder og har en c++ eksame om 1½ uges tid, så jeg sidder og kigger på gamle eksamens-sæt.

En simpel opgave lyder sådan:

----------
Kan nedenstående kode kompileres eller vil koden fremprovokere en syntaksfejl?

Redegør for svaret uanset udfaldet.

string minStreng;
char mitcarray[]= "noget tekst";
minStreng = mitcarray;
----------

Øhm... Selvom den ser så uskyldig og simpel ud må jeg melde pas.... Nogen som kan hjælpe...?



Hvad med at taste det ind i en compiler og tjekke det?



Man må ikke have computer med til eksamen så jeg skal kunne forklare mig ud af det... :-S



Må vi så overhovedet hjælpe dig?
Og du kan jo sagtens gøre det før eksamen og finde ud af om det kan...



Ja ja, det er et gammelt eksamens-sæt :-)

Det jeg skal til eksamen i kender jeg selvfølge ikke...



Umiddelbar tror jeg ikke den vil kunne kompile.

string minStreng;
char mitcarray[]= "noget tekst";
minStreng = mitcarray;

Du opretter en string med navnet minStreng. Ingen problemer. Du opretter et array af tyoen char med navnet mitcarray og laver en instans med "noget tekst".

Så siger du at minStreng er lig med mitcarray. Et problem. mitcarray er af typen char og derfor skal den konverteres til en streng hvis det skal kunne lade sig gøre.

OBS: Det er længe siden jeg har arbejdet med c++ så det er ikke 100% sikkert det jeg har skrevet men jeg er meget sikker.



Indlæg senest redigeret d. 27.11.2008 15:39 af Bruger #6559
Vi har fået udleveret en vejledende løsning af vores lære, men forstår ikke helt svaret:

Kan godt compileres - da string STL (Standard Template Library) er overloadet mht. assignment-operatoren ("=") så denne også kan håndtere C-strings eller arrays
Havde det omvendte været tilfældet var det gået galt.



Det han siger er at typen std::string kan indeholde char eller et char array.
Hvis du havde prøvet at putte en std::string i en char var det gået galt. Kig på c++ egen hjemmeside, der er en rigtig god reference manual.



tak for dit svar.



Det han siger er at typen std::string kan indeholde char eller et char array.


Jeg tror at det er mere korrekt at sige at man kan assigne et en char* eller et char array til en std::string, derved bliver indholdet af char pointeren eller arrayet kopieret over i std::string'en.

Man kan ikke sige at en std::string kommer til at indeholde char eller char array.

I øvrigt vil jeg gerne vide hvor "c++ egen hjemmeside" er, har du en link?



hvis din kode kun er de 3 linier der ville jeg faktisk svare den ikke vil compile.

man skal ligesom huske at include filen der har string klassen, og sætte std til at være brugt.



<< < 12 > >>
t