Udostępnij za pośrednictwem


CFixedStringT, klasa

Ta klasa reprezentuje obiekt ciągu z buforem znaków stałych.

Składnia

template<class StringType, int t_nChars>
class CFixedStringT : private CFixedStringMgr, public StringType

Parametry

StringType
Używana jako klasa bazowa dla obiektu stałego ciągu i może być dowolnym CStringTtypem opartym na typie. Niektóre przykłady to CString, CStringAi CStringW.

t_nChars
Liczba znaków przechowywanych w buforze.

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CFixedStringT::CFixedStringT Konstruktor obiektu string.

Operatory publiczne

Nazwa/nazwisko opis
CFixedStringT::operator = Przypisuje nową wartość do CFixedStringT obiektu.

Uwagi

Ta klasa jest przykładem niestandardowej klasy ciągów na CStringTpodstawie klasy . Mimo że te dwie klasy różnią się implementacją. Główne różnice między elementami CFixedStringT i CStringT to:

  • Początkowy bufor znaków jest przydzielany jako część obiektu i ma rozmiar t_nChars. Dzięki temu obiekt może CFixedString zajmować ciągły fragment pamięci na potrzeby wydajności. Jeśli jednak zawartość CFixedStringT obiektu przekroczy t_nChars, bufor jest przydzielany dynamicznie.

  • Bufor znaków dla CFixedStringT obiektu ma zawsze taką samą długość ( t_nChars). Nie ma ograniczeń dotyczących rozmiaru buforu dla CStringT obiektów.

  • Menedżer pamięci dla CFixedStringT programu jest dostosowany, tak aby udostępnianie obiektu CStringData między co najmniej dwoma CFixedStringT obiektami było niedozwolone. CStringT obiekty nie mają tego ograniczenia.

Aby uzyskać więcej informacji na temat dostosowywania CFixedStringT i zarządzania pamięcią dla obiektów ciągów w ogóle, zobacz Zarządzanie pamięcią i CStringT.

Hierarchia dziedziczenia

IAtlStringMgr

StringType

CFixedStringMgr

CFixedStringT

Wymagania

Nagłówek: cstringt.h

CFixedStringT::CFixedStringT

CFixedStringT Tworzy obiekt.

CFixedStringT() throw();
explicit CFixedStringT(IAtlStringMgr* pStringMgr) throw();
CFixedStringT(const CFixedStringT<StringType, t_nChars>& strSrc);
CFixedStringT(const StringType& strSrc);
CFixedStringT(const StringType::XCHAR* pszSrc);
explicit CFixedStringT(const StringType::YCHAR* pszSrc);
explicit CFixedStringT(const unsigned char* pszSrc);

Parametry

pszSrc
Ciąg o wartości null, który ma zostać skopiowany do tego CFixedStringT obiektu.

strSrc
Istniejący CFixedStringT obiekt do skopiowania do tego CFixedStringT obiektu.

pStringMgr
Wskaźnik do menedżera CFixedStringT pamięci obiektu. Aby uzyskać więcej informacji na temat IAtlStringMgr zarządzania pamięcią dla CFixedStringTprogramu , zobacz Zarządzanie pamięcią i CStringT.

Uwagi

Ponieważ konstruktory kopiują dane wejściowe do nowego przydzielonego magazynu, należy pamiętać, że mogą wystąpić wyjątki pamięci. Niektóre z tych konstruktorów działają jako funkcje konwersji.

CFixedStringT::operator =

Ponownie inicjuje istniejący CFixedStringT obiekt z nowymi danymi.

CFixedStringT<StringType, t_nChars>& operator=(
    const CFixedStringT<StringType, t_nChars>& strSrc);
CFixedStringT<StringType, t_nChars>& operator=(const char* pszSrc);
CFixedStringT<StringType, t_nChars>& operator=(const wchar_t* pszSrc);
CFixedStringT<StringType, t_nChars>& operator=(const unsigned char* pszSrc);
CFixedStringT<StringType, t_nChars>& operator=(const StringType& strSrc);

Parametry

pszSrc
Ciąg o wartości null, który ma zostać skopiowany do tego CFixedStringT obiektu.

strSrc
Istniejący CFixedStringT do skopiowania do tego CFixedStringT obiektu.

Uwagi

Należy pamiętać, że wyjątki pamięci mogą wystąpić za każdym razem, gdy używasz operatora przypisania, ponieważ nowy magazyn jest często przydzielany do przechowywania wynikowego CFixedStringT obiektu.

Zobacz też

CStringT, klasa
Wykres hierarchii
Klasy udostępnione ATL/MFC