我们有以下内容:
(伪代码)
我们希望在MyClass.cpp中重载
然而,它无法编译。我们得到了一个类似于“missing ; before &”的错误。
“MyStruct must be a class or namespace if followed by ::”。 这里有什么概念我不理解吗?
class MyClass
{
private:
struct MyStruct{
MyStruct operator=(const MyOtherStruct& rhs);
int am1;
int am2;
};
};
我们希望在MyClass.cpp中重载
=
运算符,使其能够执行以下操作:MyStruct&
MyStruct::operator=(const MyOtherStruct& rhs)
{
am1 = rhs.am1;
am2 = rhs.am2;
}
然而,它无法编译。我们得到了一个类似于“missing ; before &”的错误。
“MyStruct must be a class or namespace if followed by ::”。 这里有什么概念我不理解吗?
MyStruct
。 - chrisMyStruct
位于MyClass
内部,所以没有MyStruct::operator=
。请使用MyClass::MyStruct::operator=
。另外,不要忘记在MyStruct
中声明operator=
。 - syam