c++ – Error while overloading operator (must be a nonstatic member function)
You are missing class name:
This is global operator,
= cannot be global:
S &operator=(const S &s)
You must define this as class function:
S & S::operator=(const S &s) // ^^^
I believe PiotrNycz has provided the reasonable answer. Here please pardon me to add one more word.
In c++, assignment operator overloading function couldnt be
friend function. Using friend function for operator=, will cause the same compiler error overloading = operator must be a nonstatic member function.