gpt4 book ai didi

c++ - 为什么编译器不为模板类提供默认的 operator=?

转载 作者:行者123 更新时间:2023-11-28 01:47:43 24 4
gpt4 key购买 nike

<分区>

我的代码,

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;
}

我遇到了错误,

Error 1 error C2582: 'operator =' function is unavailable in 'NamedObject' c:\users\pkothari\documents\visual studio 2008\projects\stackoflw\stackoflw\stackoflw.cpp 39

我没有提供任何运算符=,编译器不应该提供默认的吗?

@Edit for shown as duplicate:我同意 const,引用可以引用另一个对象的成员。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com