Yes, though not because of the upper case, it is the constructor.
No. A constructor is basically an explicit constructor. Printing is totally different and that’s what string
does as shown in the doc.
That’s not what I’m talking about either. All of the functions you mentioned are wrappers around printing objects and so that’s what you should overload. If you overload one of the wrappers (e.g. string
) to not do what the doc says the functions should be doing, it’ll certainly not be consistent with other functions anymore.