/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Hvordan returner man en type af sig selv f~
Fra : Carsten Schwartz


Dato : 22-06-01 09:34

Vi arbejder i øbjeblikket med en string klasse 'CString' og har lavet en
'Mid' funktion, der gerne skulle returnere samme type d.v.s:

CString CString::Mid(int iFirst) const
{
CString csReturnValue;

if (iFirst < GetLength())
{
csReturnValue = &m_pchData[iFirst];
}

return csReturnValue;
}

Problemet er at 'csReturnValue' klart nok bliver fjernet fra stakken før det
bliver returneret. Hvordan klarer man at returnere før det bliver ødelagt?

Det er oplagt at man så kan gøre:

CString csMid;
CString csTestString = "Teststring";

csMid = csTestString.Mid(3)

Mid er herefter "tstring"....



 
 
Ivan Johansen (22-06-2001)
Kommentar
Fra : Ivan Johansen


Dato : 22-06-01 09:46

Carsten Schwartz wrote:
>
> Vi arbejder i øbjeblikket med en string klasse 'CString' og har lavet en
> 'Mid' funktion, der gerne skulle returnere samme type d.v.s:
>
> CString CString::Mid(int iFirst) const
> {
> CString csReturnValue;
>
> if (iFirst < GetLength())
> {
> csReturnValue = &m_pchData[iFirst];
> }
>
> return csReturnValue;
> }
>
> Problemet er at 'csReturnValue' klart nok bliver fjernet fra stakken før det
> bliver returneret. Hvordan klarer man at returnere før det bliver ødelagt?

Bare sørg for at CString har implementeret en copy constructor, da denne
vil blive anvendt under returneringen. Er der for øvrigt en grundt til
at I ikke anvender std::string?

Ivan Johansen

Carsten Schwartz (22-06-2001)
Kommentar
Fra : Carsten Schwartz


Dato : 22-06-01 10:54

Tak for tippet. Vi anvender ikke std::string fordi vi har en del kode
skrevet i Microsoft MFC og vi gerne vil kunne lave testprogrammer på windows
siden og så bruge sourcekoden direkte på vores embeddede platform. Ellers en
go' idé.

"Ivan Johansen" <Ng@Padowan.dk> wrote in message
news:3B3305CB.6EAD23C4@Padowan.dk...
> Carsten Schwartz wrote:
> >
> > Vi arbejder i øbjeblikket med en string klasse 'CString' og har lavet en
> > 'Mid' funktion, der gerne skulle returnere samme type d.v.s:
> >
> > CString CString::Mid(int iFirst) const
> > {
> > CString csReturnValue;
> >
> > if (iFirst < GetLength())
> > {
> > csReturnValue = &m_pchData[iFirst];
> > }
> >
> > return csReturnValue;
> > }
> >
> > Problemet er at 'csReturnValue' klart nok bliver fjernet fra stakken før
det
> > bliver returneret. Hvordan klarer man at returnere før det bliver
ødelagt?
>
> Bare sørg for at CString har implementeret en copy constructor, da denne
> vil blive anvendt under returneringen. Er der for øvrigt en grundt til
> at I ikke anvender std::string?
>
> Ivan Johansen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste