My code,
template<typename T>
class NamedObject{
public:
NamedObject(std::string& name, const T& value):nameValue(name), objectValue(value)
{
}
private:
std::string& nameValue;
const T objectValue;
};
int main(int argc, char* argv[])
{
NamedObject<int> obj1(std::string("Obj1"),3);
NamedObject<int> obj2(std::string("Obj2"),3);
obj2 = obj1; //this line gives error
return 0;
}
I am getting error,
Error 1 error C2582: 'operator =' function is unavailable in 'NamedObject' c:\users\pkothari\documents\visual studio 2008\projects\stackoflw\stackoflw\stackoflw.cpp 39
I have not provide any operator =, shouldn't compiler provide default one?
@Edit for shown as duplicate: I agree with const, reference can refer to member of another object.