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