Which of the following statements accurately describe unary operator overloading in C++?

A. A unary operator can be overloaded with one parameter when the operator function is a class member.
B. A unary operator can only be overloaded if the operator function is a class member.
C. A unary operator can be overloaded with one parameter when the operator function is free standing function (not a class member).
D. A unary operator can be overloaded with no parameters when the operator function is a class member.
E. A unary operator can be overloaded with no parameters when the operator function is a free standing function (not a class member)

I would say A and B because unary means one parameter and to do overloading it must be a class member (I rather sure). D and E are wrong because its needs one parameter. C is wrong because you need a class member.

Can someone please clarify my answer. I'm a little unsure if you can do overloading as a free standing function (not a class member). Thx.