c – 用户定义的转换运算符作为printf的参数
发布时间:2020-12-16 10:16:31 所属栏目:百科 来源:网络整理
导读:我有一个类为TCHAR *定义了一个用户定义的运算符,就像这样 CMyClass::operator const TCHAR*() const{ // returns text as const TCHAR*} 我希望能够做类似的事情 CMyClass myClass;_tprintf(_T("%s"),myClass); 甚至 _tprintf(_T("%s"),CMyClass(value));
我有一个类为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("%sn"),(const TCHAR*)myClass); _tprintf(_T("%sn"),myClass.operator const TCHAR *()); 但是,我不想演员.怎么能实现这一目标? 注意,一种可能性是创建一个具有const TCHAR *参数的函数,以便它强制调用运算符TCHAR *,但这也是我不想实现的. 解决方法
避免转换运算符.他们很少做你想做的事情,然后明确的电话是痛苦的.将运算符const TCHAR *()const重命名为TCHAR * str()const.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |