imagine a cituation
struct asd{int a;int b;}asd a, b, c(3,4);a=b=c;
why is this possible?
because the operator "asd& operator=(asd&)" looks like:
asd& operator=(asd& copy){a = copy.a;b = copy.b;return *this;}
there is always a hidden parameter "this" in C++ member functions. It is a pointer to the main object. And is the sape write "this->a" than "a" ('cause "this" is "default").
In the operator= you should copy all member variables (making work "a=b")and then return a reference to the object (alowing a=b=c).
Oh, and it's a good choice checking if you're not doing "a=a"
asd& operator=(asd& copy){if(this!= copy ){a = copy.a;b = copy.b;}return *this;}
it's avout pointers...
[opinion]
If you don't control C++ don't write a script engine. It's one of the hardest thinks you can do.
[/opinion]