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 CStringT
typem opartym na typie. Niektóre przykłady to CString
, CStringA
i 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 CStringT
podstawie 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 dlaCStringT
obiektów.Menedżer pamięci dla
CFixedStringT
programu jest dostosowany, tak aby udostępnianie obiektu CStringData między co najmniej dwomaCFixedStringT
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 CFixedStringT
programu , 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