Share via


El paso de argumento CString

En este artículo se explica cómo pasar los objetos de CString a funciones y cómo devolver los objetos de CString de funciones.

Convenciones Argumento-Que Pasan CString

Cuando se define una interfaz de clase, debe determinar la convención argumento-que pasa para las funciones miembro.Hay algunas reglas estándar para pasar y devolver los objetos de CString .Si sigue las reglas descritas en cadenas como entradas de la función y Cadenas como resultados de la función, tendrá un código eficaz, correcto.

cadenas como entradas de la función

La manera más eficaz y más seguro utilizar un objeto de CString a las funciones llamadas es pasar un objeto de CString a la función.A pesar del nombre, un objeto de CString no almacena una cadena internamente como c. la cadena de estilo que tiene un carácter null final.En su lugar, un objeto de CString conserva la pista cuidadosa del número de caracteres que tiene.Teniendo CString proporcione un puntero de LPCTSTR a una cadena terminada en null es una pequeña cantidad de trabajo que puede resultar significativa si el código hacerlo constantemente.El resultado es temporal porque cualquier cambio en el contenido de CString reemplaza las antiguas copias del puntero de LPCTSTR .

Tiene sentido de proporcionar en algunos casos una cadena de lenguaje c.Por ejemplo, puede haber una situación donde una función denominada está escrita en C y no admite objetos.En este caso, fuerce el parámetro de CString a LPCTSTR, y la función obtendrá c. cadena terminada en null de estilo.También puede ir la dirección y crear un objeto de CString utilizando el constructor de CString que acepta c. parámetro de cadena de estilo.

Si fuese el contenido de la cadena a cambiar por una función, declare el parámetro como una referenciaCString que no es una constante (CString&).

Cadenas como resultados de la función

Puede devolver normalmente los objetos de CString de funciones porque los objetos de CString siguen la semántica de valores como tipos primitivos.para devolver una cadena de sólo lectura, utilice una referenciaCString constante (const CString&).El ejemplo siguiente se muestra el uso de los parámetros y los tipos de devolución de CString :

class CName : public CObject
{
private:
   CString m_firstName;
   TCHAR m_middleInit;
   CString m_lastName;
public:
   CName() {}
   void SetData(LPCTSTR fn, const TCHAR mi, LPCTSTR ln)
   {
      m_firstName = fn;
      m_middleInit = mi;
      m_lastName = ln;
   }
   void GetData(CString& cfn, TCHAR& mi, CString& cln)
   {
      cfn = m_firstName;
      mi = m_middleInit;
      cln = m_lastName;
   }
   CString GetLastName()
   {
      return m_lastName;
   }
};
CName name;
CString last, first;
TCHAR middle;
name.SetData(_T("John"), 'Q', _T("Public"));
ASSERT(name.GetLastName() == _T("Public"));
name.GetData(first, middle, last);
ASSERT((first == _T("John")) && (last == _T("Public")));

Vea también

Otros recursos

Cadenas (y MFC)