Then I have a class for which I have an overload I know I want to do this I can work as a regular private member, but I already have some debugging macros which are the You can use the Note that the proxy is not required to be a friend. The only change in the normal way of working is to have a proxy and a conversion function. operator < & Lt; Output your internal data in the output stream; I want to do this for debugging purposes only and in this way somehow the
operator & lt; & Lt; To hide from the outside world, so that it is only the
* .cpp file where the implementation of my class remains
operator & lt; & Lt; Announcing Friends enables anyone from outside the world to call
operator on this class ...
operator & lt; & Lt; , so I was wondering if it is possible to do it in some way
operator in a supporting proxy class & lt; & Lt; can move functionality. When the proxy is
& lt; & Lt; Used as RHS of , the original item is printed. Define a
personal built-in conversion from the original to the proxy now let anyone
operator & lt; & Lt; , but only the class has the ability to create a proxy.
class private_printable {int state; Structure Proxy {Private_procable bracket & amp; R; }; Operator proxy () const {refund {* this}; } Buddy Stud :: Ostream & amp; Operator & lt; & Lt; (Stud :: Ostream and Proxy Cost & amp; O) {Returns S & LT; & Lt; O.r.state; } Public: Private_Printable (): State (5) {} zero debug () {std :: cout & lt; & Lt; * This is & lt; & Lt; '\ N'; }};
Friend Operator & lt; & Lt; Namespace-scope is found by logic-based lookup without declaration, even if it does not take any
private_printable argument, then the conversion makes it viable so do not do that cleaner solution Possible: v).
No comments:
Post a Comment