Sdílet prostřednictvím


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ý CStringTtyp založený na. Mezi příklady patří CString, CStringAa 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 objektu CFixedStringT 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í velikosti CStringT vyrovnávací paměti.

  • Správce paměti je CFixedStringT přizpůsoben tak, aby sdílení objektu CStringData mezi dvěma nebo více CFixedStringT 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 CFixedStringTv 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.

Viz také

CStringT – třída
Graf hierarchie
Sdílené třídy ATL/MFC