Possible Duplicate:
What does “operator = must be a non-static member” mean? (C++)
Hi,
I have the following code...
// Header file
struct dataRecord{
size_t id;
char name[gcNameLength];
};
void operator=(dataRecord &adr, const dataRecord &bdr);
How ever gcc gives me the following error when compiling.
error: ‘void operator=(dataRecord&, const dataRecord&)’ must be a nonstatic member function
Thanks for the help.
There is not such a thing as an operator= function. The operator has to be a member of the class or struct. The argument for that function is taken as the rvalue. The object with the member function is the lvalue.
As stated in What does “operator = must be a non-static member” mean?, the operator overload needs to be a member function.
Note that when you overload the operator=, you should return a reference to the left operand, so it won't break the flow and will allow expressios like:
You need to overload
=
operation on thestruct dataRecord
itself.Something like: