CFixedStringT – třída
Tato třída představuje řetězcový objekt s pevnou znakovou vyrovnávací pamětí.
Syntaxe
template<class StringType, int t_nChars>
class CFixedStringT : private CFixedStringMgr, public StringType
Parametry
StringType
Používá se jako základní třída pro objekt s pevným řetězcem a může být libovolný CStringT
typ založený na. Mezi příklady patří CString
, CStringA
a CStringW
.
t_nChars
Počet znaků uložených ve vyrovnávací paměti.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CFixedStringT::CFixedStringT | Konstruktor pro objekt string. |
Veřejné operátory
Název | Popis |
---|---|
CFixedStringT::operator = | Přiřadí objektu novou hodnotu CFixedStringT . |
Poznámky
Tato třída je příkladem vlastní třídy řetězce založené na CStringT
. I když jsou podobné, dvě třídy se v implementaci liší. Hlavní rozdíly mezi CFixedStringT
a CStringT
mezi těmito hlavními rozdíly jsou:
Počáteční vyrovnávací paměť znaků je přidělena jako součást objektu a má velikost t_nChars. Objekt tak může
CFixedString
zabírat souvislý blok paměti pro účely výkonu. Pokud se ale obsah objektuCFixedStringT
rozrůstá nad rámec t_nChars, přiděluje se vyrovnávací paměť dynamicky.Vyrovnávací paměť znaků objektu
CFixedStringT
je vždy stejná délka ( t_nChars). Pro objekty neexistuje žádné omezení velikostiCStringT
vyrovnávací paměti.Správce paměti je
CFixedStringT
přizpůsoben tak, aby sdílení objektu CStringData mezi dvěma nebo víceCFixedStringT
objekty není povoleno.CStringT
objekty nemají toto omezení.
Další informace o přizpůsobení CFixedStringT
a správě paměti pro objekty řetězců obecně naleznete v tématu Správa paměti a CStringT.
Hierarchie dědičnosti
IAtlStringMgr
StringType
CFixedStringMgr
CFixedStringT
Požadavky
Hlavička: cstringt.h
CFixedStringT::CFixedStringT
CFixedStringT
Vytvoří objekt.
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
Řetězec ukončený hodnotou null, který se má zkopírovat do tohoto CFixedStringT
objektu.
strSrc
Existující CFixedStringT
objekt, který se má do tohoto CFixedStringT
objektu zkopírovat.
pStringMgr
Ukazatel na správce paměti objektu CFixedStringT
. Další informace o IAtlStringMgr
správě paměti naleznete CFixedStringT
v tématu Správa paměti a CStringT.
Poznámky
Vzhledem k tomu, že konstruktory kopírují vstupní data do nového přiděleného úložiště, měli byste vědět, že výjimky paměti mohou mít za následek. Některé z těchto konstruktorů fungují jako konverzní funkce.
CFixedStringT::operator =
Znovu inicializuje existující CFixedStringT
objekt s novými daty.
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
Řetězec ukončený hodnotou null, který se má zkopírovat do tohoto CFixedStringT
objektu.
strSrc
Existující CFixedStringT
objekt, který se má zkopírovat do tohoto CFixedStringT
objektu.
Poznámky
Měli byste vědět, že výjimky paměti mohou nastat vždy, když použijete operátor přiřazení, protože nové úložiště je často přiděleno k uložení výsledného CFixedStringT
objektu.