Поделиться через


Передача аргумента CString

В этой статье описывается, как передать объекты CString к функциям и возврата объектов CString от функций.

Соглашения Аргумент- Передавая CString

При определении интерфейса класса необходимо указать аргумент- передавая о вызовах для функций-членов.Некоторые стандартные правила для передачи и возврата объектов CString.Если следовать правилам, описанными в Строки как входные данные функции и Строки как выходные данные функции, будет иметь эффективный, правильный код.

Строки как входные данные функции

Наиболее эффективный и наиболее безопасный способ использования объекта CString в функциях, вызванных передать объект CString функции.Несмотря на имени, объект CString не сохраняется строка внутри c. вставка строки как стили, которая имеет нулевой завершающий символ.Вместо этого объект CString содержит тщательную отслеживание числа символов он содержит.Having CString реализуйте указатель LPCTSTR null- готовая строка небольшой объем работы, который может стать значительно если код должен выполнить его постоянным.Результатом является временным, поскольку любое изменение содержимого CString делает недействительным старые копии указателя LPCTSTR.

Он имеет смысл в некоторых случаях предоставить c - вставьте строку стиля.Например, могут быть ситуация, когда вызванная функция записана в C# и не поддерживают объекты.В этом случае coerce - параметр CString к LPCTSTR и функции, производящие c - стиль null- готовая строка.Также можно перейти другое направление и создания объекта CString с помощью конструктора, который принимает CString c. вставка параметр стиля строки.

Если содержимое строки изменением функцией, объявите параметр как nonconstant ссылка CString (CString&).

Строки как выходные данные функции

Обычно можно вернуться объекты CString от функций поскольку объекты CString следовать семантике значения как типы-примитивы.Для возвращения типа string, доступное только для чтения, используйте константу ссылку CString (const CString&).В следующем примере показано использование параметров и возвращаемых типов 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")));

См. также

Другие ресурсы

String (ATL/MFC)