Aracılığıyla paylaş


CString geçirerek bağımsız değişkeni

Bu makalede nasıl geçirileceğini anlatıyor CString nesneleri işlevleri ve nasıl iade CString işlevler nesneleri.

CString geçirerek bağımsız değişken kuralları

Bir sınıf arabirimi tanımladığınızda, üye işlevler için bağımsız değişken geçirme convention belirlemeniz gerekir.Geçirerek ve döndürmek için bazı standart kurallar vardır CString nesneler.Açıklanan kuralları izlerseniz dize işlevi girdileri olarak ve dize işlevi çıktıları olarak, verimli ve doğru kodu olacaktır.

Dize işlevi girdi olarak

Kullanmak için en verimli ve güvenli şekilde bir CString adlı işlevlerinde nesnesidir geçirmek için bir CString çalışması için nesne.Adı rağmen bir CString nesnesi değil saklamak bir dize dahili olarak null bir sonlandırıcıya sahip c stilinde dize.Bunun yerine, bir CString nesne sahip karakter sayısını dikkatli izini tutar.Sahip CString sağlayan bir LPCTSTR bir boşlukla sonlandırılmış dize işaretçidir sürekli yapmak kodunuz varsa, önemli olabilmesi için iş, küçük bir miktar.Değişiklik sonucu geçici, çünkü CString içeriği geçersiz kılar, eski kopyalarını LPCTSTR işaretçisi.

c stilinde dize sağlamak için bazı durumlarda anlamlı.Örneğin, bir durum burada çağrılan işlev C'de yazılmış ve nesneleri desteklemiyor olabilir.Bu durumda, zorunlu CString parametresi LPCTSTR, ve c stilinde boş sonlandırılmış bir dize işlevi elde edersiniz.Ayrıca diğer yöndeki gidin ve oluşturma bir CString kullanarak nesne CString c stilinde dize parametresi kabul yapıcısına.

Bir işlev tarafından değiştirilmesine izin dizesinin içeriği, parametre olarak bir nonconstant bildirmek CString başvurusu (CString &).

Dizeleri olarak işlev çıkışları

Genellikle dönmek CString çünkü işlevlerden nesneleri CString nesneleri gibi temel türler değer semantiği izleyin.Bir salt okunur dize döndürmek için bir sabit kullanın CString başvurusu (const CString &).Aşağıdaki örnek kullanımını göstermektedir CString parametreleri ve dönüş türleri:

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")));

Ayrıca bkz.

Diğer Kaynaklar

Dizeler (atl/mfc)