Code Bye

CString类重载运算符more than one operator match these op

m_strline+=nChar;
其中m_strline是一个CString类对象,nChar是一个ASCII码,语句报错“more than one operator match these operand”。是什么原因?
解决方案:40分
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/dv_vclib/html/39569564-290e-4b6f-a829-2919556bee32.htm
Shared Visual C++ Classes Reference 
CStringT::operator + 
Example  See Also  Send Feedback 
 
Concatenates two strings or a character and a string.
 
friend CStringT operator+(
   const CStringT& str1,
   const CStringT& str2
);
friend CStringT operator+(
   const CStringT& str1,
   PCXSTR psz2
);
friend CStringT operator+(
   PCXSTR psz1
   const CStringT& str2,
);
friend CStringT operator+(
   char ch1
   const CStringT& str2,
);
friend CStringT operator+(
   const CStringT& str1,
   char ch2
);
friend CStringT operator+(
   const CStringT& str1,
   wchar_t ch2
);
friend CStringT operator+(
   wchar_t ch1
   const CStringT& str2,
);
 
Parameters
ch1
An ANSI or Unicode character to concatenate with a string.
ch2
An ANSI or Unicode character to concatenate with a string.
str1
A CStringT to concatenate with a string or character.
str2
A CStringT to concatenate with a string or character.
psz1
A pointer to a null-terminated string to concatenate with a string or character.
psz2
A pointer to a string to concatenate with a string or character.
Remarks
There are seven overload forms of the CStringT::operator+ function. The first version concatenates two existing CStringT objects. The next two concatenate a CStringT object and a null-terminated string. The next two concatenate a CStringT object and an ANSI character. The last two concatenate a CStringT object and a Unicode character.
Note: 
Although it is possible to create CStringT instances that contain embedded null characters, we recommend against it. Calling methods and operators on CStringT objects that contain embedded null characters can produce unintended results. 
 
Example
Visual C++  Copy Code 
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T(“dog “)), s2(_T(” awake”)), s3;  // Empty CAtlString objects
s1= _T(“The “) + s1;
s3= s1 + _T(“”i””);
s3= s3 + _T(“”s””);
s3= s3 + s2;
ASSERT(s3 == _T(“The dog is awake”));   
 
Requirements
Header: cstringt.h
See Also
Concepts
CStringT Class
CStringT Members
Send feedback on this topic to Microsoft.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明CString类重载运算符more than one operator match these op