&是取址符,这里就是取X1的地址作为参数传递给CString的构造函数。
之所以要这样传参,是CString的构造函数规定的,就跟其他函数传参一样,不过你这本身传递的并不正确。可以参考一下CString的构造函数:
CString( );
CString( const CString& stringSrc );
CString( TCHAR ch, int nRepeat = 1 );
CString( LPCTSTR lpch, int nLength );
CString( const unsigned char* psz );
CString( LPCWSTR lpsz );
CString( LPCSTR lpsz );
虽然说你这个代码传参可以参考第五个构造函数,不过代码本身是错误的,参考一下下面代码:
char *abc = "abc";
CString __CString(abc);
这里传的参数abc就是一个地址,他本身的含义跟你代码中&X1是一样的,不同的是abc指向的是一个字符串,&X1指向一个int类型的数据。
这里的+号是经过重载的,也就是运算符重载。一般是把两个字符串进行追加,如abc和def,经过相加后成为abcdef。
enjoy!