Avatar billede hhdsleizer Nybegynder
01. september 2003 - 23:31 Der er 10 kommentarer og
1 løsning

mfc fejlretning

jeg er igang med at lære mfc og er et forsøg stødt på følgende fejl:

c:\Documents and Settings\Sleizer_2\Skrivebord\Programmering\opgaver\VisualKB\VisualKB.cpp(269): error C2593: 'operator +=' is ambiguous
(279): error C2593: 'operator =' is ambiguous

koden den første fejl er i ser ud på følgende måde:
if (m_nTextPos == m_strInputText.GetLength ())
        {
            m_strInputText += nChar;
            m_nTextPos++;
        }

men hvorfor siger den at det har flere betydninger??? eller er det bare mit engelsk der ikke er hvad det har været???(har ikke skrevet kode til fejl til fejl 2 da jeg regner med at det rettes på samme måde)

Sleizer
Avatar billede bertelbrander Novice
01. september 2003 - 23:44 #1
Det tyder på at kompileren ikke kan bestemme sig for hvilken af to operatorer den skal bruge til at løse +=
Hvad er nChar? Jeg går ud fra at m_strInputText er en CString.
Avatar billede tjp Mester
01. september 2003 - 23:50 #2
Kan det ikke skyldes at += kan bruges på både char* og String, og at nChar's type ikke er klar?
Avatar billede jpk Nybegynder
02. september 2003 - 08:35 #3
Er nChar, som navnet angiver, af typen char?

Hvis ikke, vil compileren sansynligvis se den som en int og derfor ikke vide hvilken operator overload den skal bruge for +=.
Avatar billede jpk Nybegynder
02. september 2003 - 08:37 #4
Du vil typisk få denne fejl hvis du kompilerer noget kode med VC++ 7, der oprindelig var lavet under VC++ 6 (hvor dette ikke var et problem).
Avatar billede hhdsleizer Nybegynder
02. september 2003 - 14:51 #5
hmm er kode skrevet i VC++ 7 som oprindelig er lavet til 6'eren... men er der en måde at løse dette på?
Avatar billede jpk Nybegynder
02. september 2003 - 14:53 #6
Hvilken type er nChar???
Avatar billede hhdsleizer Nybegynder
02. september 2003 - 14:59 #7
det er en int.
Avatar billede jpk Nybegynder
02. september 2003 - 15:02 #8
Som jeg skrev i mit indlæg af 02/09-2003 08:35:39 vil det give problemer da kompileren ikke ved hvilken operator overload den skal bruge!

Hvis variablen "kun" skal indeholde en karakter, så lav typen om til char...
Avatar billede jpk Nybegynder
02. september 2003 - 15:03 #9
Hvis du bruger variablen til at indeholde større/mindre tal end det er muligt i en char, kan du gøre således:

m_strInputText += (char)nChar;
Avatar billede hhdsleizer Nybegynder
03. september 2003 - 10:46 #10
takker det hjalp... ligger du lige et svar så du kan få points.

Sleizer
Avatar billede jpk Nybegynder
03. september 2003 - 11:24 #11
selvfølgelig, tak...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester