[Erledigt] Zuweisung, Swap String
-
Hi ich hab grad folgendes Problem
Ich hab eine Klasse mit einem String als Member, und muss den Zuweisungsoperator implementieren.
class material { public: material() {} material( std::string name_ ) : name( name_ ) {} ~material(void) {} material& operator=( const material& other ) { if( &other != this ) { std::swap( name, other.name ); } return *this; } std::string name; };Wenn ich das so wie oben mache gibt das diesen Fehler.
...material.h(14) : error C2664: 'void std::swap<char,std::char_traits<char>,std::allocator<_Ty>>(std::basic_string<_Elem,_Traits,_Ax> &,std::basic_string<_Elem,_Traits,_Ax> &)' : cannot convert parameter 2 from 'const std::string' to 'std::basic_string<_Elem,_Traits,_Ax> &' with [ _Ty=char, _Elem=char, _Traits=std::char_traits<char>, _Ax=std::allocator<char> ] and [ _Elem=char, _Traits=std::char_traits<char>, _Ax=std::allocator<char> ] Conversion loses qualifiersUnd wenn ich nur
name = other.nameschreibe, hab ich undefiniertes Verhalten, sprich einen BadPtr was zur Exception führt
material {name="ìû" }
Wer kann mir helfen?
Danke im voraus
-
Easy

hat sich erledigt, der Fehler lag woanders.
-
und muss den Zuweisungsoperator implementieren.
glaub ich nicht.