CString argumento Passing
Este artigo explica como passar CString objetos para funções e como retornar CString objetos de funções.
Convenções de passando argumentos CString
Quando você define uma interface de classe, você deve determinar a convenção de passagem de argumento para as funções de membro.Existem algumas regras padrão para passar e retornando CString objetos. Se você seguir sistema autônomo regras descritas em Cadeias de caracteres sistema autônomo entradas de função and Cadeias de caracteres sistema autônomo saídas de função, você terá de código eficiente, correto.
Cadeias de caracteres sistema autônomo entradas de função
Se uma seqüência de caracteres for uma entrada para uma função, na maioria dos casos é preferível declarar o parâmetro da função seqüência sistema autônomo LPCTSTR. Converter em um CString objeto conforme necessário na função usando construtores e operadores de atribuição. Se o Sumário seqüência serão alteradas por uma função, declare o parâmetro sistema autônomo um nonconstant CString referência)CString &).
Cadeias de caracteres sistema autônomo saídas de função
Normalmente, você pode retornar CString objetos de funções porque CString os objetos seguem semântica de valor como tipos primitivos. Para retornar uma seqüência de caracteres somente leitura, use uma constante CString referência)Const CString &).O exemplo a seguir ilustra o uso de CString parâmetros e tipos de retorno:
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")));