我将 MFC 类 CString 子类化(该类没有问题,但相信我,我需要为特定实现执行此操作)。我已经成功地自定义了一些行为,但我注意到我丢失了隐式 (LPCTSTR) 运算符,这似乎是在将 CString 传递到格式字符串时发生的。无论是 CString::Format 还是 prinf/sprintf,都会发生这种神奇的情况。例如:
CString Str = _T("Really cool string");
TCHAR szBuffer[32];
_stprintf(szBuffer, _T("Here it is: %s"), Str);
我还没有弄清楚这个魔法是如何与标准 CString 一起工作的,因为 CString::FormatString 只是将变量参数列表传递给 _vswprintf 和 _swprintf。但是我的派生类中缺少它所做的任何事情。
运算符 (LPCTSTR) 按预期继承,并在显式调用时工作。
有任何想法吗?