我有一个为 TCHAR* 定义用户定义运算符的类,就像这样
CMyClass::operator const TCHAR*() const
{
// returns text as const TCHAR*
}
我希望能够做类似的事情
CMyClass myClass;
_tprintf(_T("%s"), myClass);
甚至
_tprintf(_T("%s"), CMyClass(value));
但是在尝试时, printf 总是打印 (null) 而不是值。我还尝试了一个普通的 char* 运算符,以及 const 等的变体。它只有在我明确调用运算符或进行强制转换时才能正常工作,比如
_tprintf(_T("%s\n"), (const TCHAR*)myClass);
_tprintf(_T("%s\n"), myClass.operator const TCHAR *());
但是,我不想投。如何做到这一点?
请注意,一种可能性是创建一个参数为 const TCHAR* 的函数,以便它强制调用运算符 TCHAR*,但这我也不想实现。