Partager via


Passer d'arguments de CString

Cet article explique comment passer des objets de CString aux fonctions et comment retourner des objets d' CString des fonctions.

Conventions Argument-Passantes de CString

Lorsque vous définissez une interface de classe, vous devez déterminer la convention argument- passante pour les fonctions membres. Il existe quelques règles standard pour passer et retourner des objets d' CString . Si vous suivez les règles décrites dans Chaînes comme entrées de fonction et Chaînes comme sortie de fonction, vous aurez un code efficace et correct.

Chaînes comme entrées de fonction

Le plus efficace et la manière sécurisée d'utiliser un objet d' CString dans les fonctions appelées est de passer un objet d' CString à la fonction. En dépit de nom, un objet d' CString ne stocke pas une chaîne en interne comme une chaîne de style c qui a une marque de fin null. En fait, un objet d' CString garde la trace minutieuse du nombre de caractères qu'il possède. En ayant CString fournissez un pointeur d' LPCTSTR à une chaîne terminée par le caractère NULL est une petite quantité de travail qui peut devenir significatif si votre code doit le faire constamment. Le résultat est temporaire car toute modification apportée au contenu d' CString invalide les copies anciennes du pointeur d' LPCTSTR .

Il est logique dans certains cas de fournir le tableau de chaînes de style. Par exemple, il peut y avoir une situation où une fonction appelée est écrite en C et ne prend pas en charge les objets. Dans ce cas, forcer le paramètre d' CString à LPCTSTR, et la fonction obtiendra à c la chaîne terminée par le caractère NULL de style. Vous pouvez également passer l'autre direction et créer un objet d' CString à l'aide de le constructeur d' CString qui accepte le paramètre de chaîne de style c.

Si le contenu de la chaîne doit être modifié par une fonction, déclarez le paramètre comme référence non constante d' CString (CString&).

Chaînes comme sortie de fonction

En général vous pouvez retourner des objets d' CString des fonctions car les objets d' CString suivent la sémantique de valeur comme des types primitifs. Pour retourner une chaîne en lecture seule, utilisez une référence à une constante d' CString (const CString&). L'exemple suivant illustre l'utilisation des paramètres et des types de retour d' 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")));

Voir aussi

Autres ressources

ATL/MFC chaînes ()