Geo*_*rge 5 c++ operator-overloading
我有一个operator=在类'ssm' 中重载的函数
ssm& operator=(ssm& rhs);
Run Code Online (Sandbox Code Playgroud)
后来我使用ssm对象(它的SSM)作为另一个类(mt3dset)的成员.我使用以下声明来初始化构造函数中的该成员.
itsSSM= ssm();
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
错误:'((mt3dSet*)this中的'operator ='不匹配 - > mt3dSet :: itsSSM = ssm()'
错误:参数1从'ssm'到'ssm&'没有已知的转换
这是编译器的问题(g ++ 4.7)?(如有需要,请询问更多信息)
不,这不是编译器的问题.您不能将临时绑定到非const引用.请注意,Visual C++具有允许此非标准功能的扩展.
只需更改您的副本assignent,将其参数作为const:
ssm& operator=(const ssm& rhs);