我有一个定义的TCHAR *用户定义的运算符我希望能够像做用户定义的转换操作符作为论据的printf
CMyClass myClass;
_tprintf(_T("%s"), myClass);
一类,像这样
CMyClass::operator const TCHAR*() const
{
// returns text as const TCHAR*
}
甚至
_tprintf(_T("%s"), CMyClass(value));
但尝试时,printf始终打印(空)而不是值。我也尝试了正常的char *运营商,以及与常量等的变化 它只是正常工作,如果我显式调用操作或做一个演员,就像
_tprintf(_T("%s\n"), (const TCHAR*)myClass);
_tprintf(_T("%s\n"), myClass.operator const TCHAR *());
不过,我不想投。这怎么能实现?
请注意,有可能创建一个函数,该函数的参数为const TCHAR *,以便它强制调用运算符TCHAR *,但是这也是我不想实现的。
或为什么不实现const TCHAR * operator()()const {}; – Rahul 2017-02-22 18:06:05