没有已知的参数从类型到类型的转换

No known conversion for argument from type to type&

本文关键字:类型 转换 参数      更新时间:2023-10-16

我有一个在类'ssm'中重载operator=的函数

ssm& operator=(ssm& rhs);

后来我使用一个ssm对象(itsSSM(作为另一个类(mt3dset(的成员。我使用以下声明在构造函数中初始化该成员。

itsSSM= ssm();

但是我收到一个错误:

错误:与"((mt3dSet*(this(->mt3dSet::itsSSM = ssm(("中的"operator="不匹配

错误:参数 1 没有从"SSM"到"SSM&"的已知转换

这是编译器(g++ 4.7(的问题吗?(如有需要,请询问更多信息(

不,这不是编译器的问题。不能将临时引用绑定到非常量引用。请注意,Visual C++ 有一个扩展来允许此非标准功能。

只需更改您的副本分配器以将其参数视为 const:

ssm& operator=(const ssm& rhs);

你应该这样做

ssm& operator=(const ssm& rhs);