3つほど質問させてください

・C++にはキャストがいくつかありますが、それぞれの役割がよく分かりません。詳説願います。

・inline関数についてですが、同一ソース中でないとinline展開されえないですか?

・演算子オーバーロードにおいて左オペランドに自作関数をとる演算子等を定義する場合、
通常のメンバ関数のような形式で定義するのと通常のグローバル関数のような形式で定義するのにはどのような違いがありますか?
bool Foo::operator +(Foo rhs)とbool operator +(Foo lhs,Foo rhs)みたいなののことです

よろしくお願いします