Partilhar via


Passagem de argumentos de CString

Este artigo explica como passar objetos de CString funções e como retornar objetos de CString de funções.

Convenções Argumento- Passando de CString

Quando você define uma interface da classe, você deve determinar a convenção argumento- passando para suas funções de membro.Há algumas regras padrões para passar e retornar objetos de CString .Se você segue as regras descritas em Cadeias de caracteres como entradas de função e em Cadeias de caracteres como saída de função, você terá código eficiente, correto.

Cadeias de caracteres como entradas de função

A maneira mais eficiente e mais segura de usar um objeto de CString em funções chamados é passar um objeto de CString à função.Independentemente de nome, um objeto de CString não armazena uma cadeia de caracteres internamente como se AC - estilize a cadeia de caracteres tem um terminador que zero.Em vez de isso, um objeto de CString mantém a trilha cuidadosa o número de caracteres que tem.Fazendo CString fornecer um ponteiro de LPCTSTR a uma cadeia de caracteres NULL- finalizada é uma pequena quantidade de trabalho que pode se tornar significativa se seu código tem que fazer constantemente.O resultado é temporário porque qualquer alteração nos conteúdos de CString invalida cópias antigos do ponteiro de LPCTSTR .

Faz sentido fornecer em alguns casos a energia AC - estilize a cadeia de caracteres.Por exemplo, pode haver uma situação onde uma função chamada foi escrito em C e não suporta objetos.Em esse caso, forçar o parâmetro de CString a LPCTSTR, e a função terá a energia AC - cadeia de caracteres NULL- finalizada estilo.Você também pode navegar para outra direção e criar um objeto de CString usando o construtor de CString que aceita a energia AC - estilizar o parâmetro de cadeia de caracteres.

Se o conteúdo cadeia de caracteres devem ser modificados por uma função, declare o parâmetro como uma referência não constante CString (CString&).

Cadeias de caracteres como saída de função

Normalmente você pode retornar objetos de CString das funções como os objetos de CString seguem a semântica de valor como tipos primitivos.Para retornar uma cadeia de caracteres somente leitura, use uma referência constante CString (const CString&).O exemplo a seguir ilustra o uso de parâmetros e tipos de retorno 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")));

Consulte também

Outros recursos

Cadeias de caracteres (ATL/MFC)