Jeg er ifærd med at overloade >> operatoren således at den kan tage et objekt at typen mystring (streng klasse) - men hvilken kode skal jeg bruge for at få læst en fra keyboardet indtastet streng ind, når de enkelte karakterer skal læses en af gangen og tilføjes til enden af strengen.
Dertil skal det parameter overførte target objekt før indlæsningen sættes til en tom streng
Funktionen må ikke være medlemsfunktion eller friend. Følgende er medlemsfunktioner - En overloaded Subscript operatoren (return sequence[position]) Og en overloaded += operatoren - void mystring::operator +=(char addend)
Er der en der kan hjælpe mig med at udfylde nedstående?
Jeg skulle mene at den overloadede subscript / [] operator (return sequence[position]) ville give adgang til det instantierede objekt, i hvis char array tekststrengen fra indput strømmen skal ind ? – og derfor kan anvendes i denne forbindelse??.
Eller er der brug for en ekstra funktion der tilgår streng objektets char array ?
Bemærk at den venter på at du trykker enter (eller rettere at den læser en newline). Man kan ikke gøre det anderledes med standard C++ (eller C) men der findes platform specifikke måder at gøre det på, hviken kompiler og platform bruger du?
Min platform er windows 2000 prof. og compileren er C++ Builderen version 5.0(Build 12.34)
Var dog ikke helt det jeg skulle bruge, skyldes mine mangelfulde oplysninger og klarhed - men det var det jeg også gerne ville have! Jeg fandt svaret på hvorfor jeg ikke kunne få følgende kode til at virke
ins.get(c); target[j++]=c;
en overloadede subscript operator som const funktion uden en reference return type - tillader ikke megen ændring af et objektet.
fandt også ud af at min opgave var at anvende en overloaded += til at indlæse den af get funktionen læste char
Bertel Kunne du lige forklare mig hvorfor man kun behøver at levere adressen til et streng objekt for at få dens array udskrevet? - det må jo næsten være en funktionalitet der allerede er implemteret i <iostream>
Et array og en pointer er næsten det samme i C og C++. Man kan ikke overføre arrays til funktioner og operatorer, kun pointere og referencer.
ostream kan udskrive std::string og const char * De sidste skal være 0-terminerede.
I min kode ovenfor er det char * metoden til udskrivning der bruges, den vil udskrive indtil den møder en char med værdien 0, derfor afslutter jeg med en aWhatever[n] = 0; i >> operatoren.
Jeg skulle have sagt tak på forhånd, men du får istedet en stor tak på baghånd
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.