我有一个在类's'中重载operator=
的函数
ssm& operator=(ssm& rhs);
后来我使用ssm对象(itsSSM)作为另一个类(mt3dset)的成员。我使用以下声明来初始化构造函数中的该成员。
itsSSM= ssm();
但是我收到了一个错误:
错误:'((mt3dSet *)this中的'operator ='不匹配 - > mt3dSet :: itsSSM = ssm()'
错误:参数1从'ssm'到'ssm&'
没有已知的转换
编译器是否存在问题(g ++ 4.7)? (如果需要,请询问更多信息)
答案 0 :(得分:6)
不,这对编译器来说不是问题。您不能将临时绑定到非const引用。请注意,Visual C ++具有允许此非标准功能的扩展名。
只需更改您的副本分配以将其参数作为const:
ssm& operator=(const ssm& rhs);
答案 1 :(得分:2)
你应该做那个
ssm& operator=(const ssm& rhs);