Problem mit std::auto_ptr
-
Hi!
Habe folgende Klasse:
class MyClass { // ... protected: std::auto_ptr<AnotherClass> m_objptr; };
und im Konstruktor dieser Klasse steht Folgendes:
MyClass::MyClass(/* ...... */) { // ... m_objptr.get() = new AnotherClass(/* ...... */); // ... }
VC++ akzeptiert aber obige Zeile nicht (error C2106: '=' : left operand must be l-value)...
Bin dankbar für jede Hilfe :)!
MfG
-
Machs so:
m_objptr.reset(new AnotherClass(/*...*/));
m_objptr liefert, wie der Compiler schon sagte, kein lvalue, sondern ein rvalue zu, also einen Wert, der zugewiesen, dem aber nicht zugewiesen werden kann.
-
m_objptr.get() liefert nen rvalue zurück, meine ich natürlich.
-
Wow, danke funktioniert