我有一個定義的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