Thread Hilfe zu Fehlermeldung C2440 (5 answers)
Opened by pktm at 2008-01-11 00:58

murphy
 2008-01-11 11:32
#104611 #104611
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
pktm+2008-01-10 23:58:33--
[...]
String s2 = new String(cv1);
[...]


Das sollte doch C++ sein, kein Java ;-)

Der new-Operator legt eine Instanz der angegebenen Klasse auf dem Heap an und gibt in C++ daher einen Zeiger (String *) auf das neue Objekt zurück. Du hast aber die Variable, die den Rückgabewert aufnehmen soll als Wert (String) des Objekttyps deklariert. Das ist natürlich inkompatibel, was Dir der Compiler auch mitzuteilen versucht.

Richtig wäre also statt der oben zitierten Codezeile entweder
Code: (dl )
1
2
3
...
String s2(cvl);
...

oder
Code: (dl )
1
2
3
4
5
6
7
8
...
String *s2 = new String(cvl);
try {
...
}
finally {
delete s2;
}

When C++ is your hammer, every problem looks like your thumb.

View full thread Hilfe zu Fehlermeldung C2440