CStrBufT – třída
Tato třída poskytuje automatické vyčištění prostředků a GetBuffer
ReleaseBuffer
volání existujícího CStringT
objektu.
Syntaxe
template<typename TCharType>
class CStrBufT
Parametry
TCharType
Typ znaku CStrBufT
třídy. Může to být jedna z následujících možností:
char
(pro řetězce znaků ANSI)wchar_t
(pro řetězce znaků Unicode)TCHAR
(pro řetězce znaků ANSI i Unicode)
Členové
Veřejné definice typedef
Název | Popis |
---|---|
PCXSTR |
Ukazatel na konstantní řetězec. |
PXSTR |
Ukazatel na řetězec. |
StringType |
Typ řetězce, jehož vyrovnávací paměť má být manipulována specializacemi této šablony třídy. |
Veřejné konstruktory
Název | Popis |
---|---|
CStrBufT::CStrBufT | Konstruktor pro objekt vyrovnávací paměti řetězce. |
Veřejné metody
Název | Popis |
---|---|
CStrBufT::SetLength | Nastaví délku vyrovnávací paměti znaků přidruženého objektu řetězce. |
Veřejné operátory
Název | Popis |
---|---|
CStrBufT::operator PCXSTR | const Načte ukazatel na vyrovnávací paměť znaků přidruženého objektu řetězce. |
CStrBufT::operator PXSTR | Načte ukazatel na vyrovnávací paměť znaků přidruženého objektu řetězce. |
Veřejné konstanty
Název | Popis |
---|---|
CStrBufT::AUTO_LENGTH | Automaticky určí novou délku řetězce při vydání. |
CStrBufT::SET_LENGTH | Nastavte délku objektu řetězce v getBuffer time |
Poznámky
Tato třída se používá jako obálka třídy pro nahrazení volání GetBuffer a ReleaseBuffer, nebo GetBufferSetLength a ReleaseBuffer
.
Primárně navržena jako pomocná třída poskytuje CStrBufT
vývojářům pohodlný způsob, jak pracovat s vyrovnávací pamětí znaků objektu řetězce, aniž by se museli starat o to, jak nebo kdy volat ReleaseBuffer
. To je možné, protože objekt obálky v případě výjimky nebo více ukončující cesty kódu přirozeně zmizí z rozsahu; tím, že jeho destruktor uvolní prostředek řetězce.
Požadavky
Hlavička: atlsimpstr.h
CStrBufT::AUTO_LENGTH
Automaticky určí novou délku řetězce při vydání.
static const DWORD AUTO_LENGTH = 0x01;
Poznámky
Automaticky určí novou délku řetězce při vydání. Řetězec musí být ukončen s hodnotou null.
CStrBufT::CStrBufT
Vytvoří objekt vyrovnávací paměti.
CStrBufT(StringType& str, int nMinLength, DWORD dwFlags = AUTO_LENGTH) throw(...);
explicit CStrBufT(StringType& str) throw(...);
Parametry
Str
Řetězcový objekt přidružený k vyrovnávací paměti. Vývojář obvykle použije předdefinované definice typedef (varianty CStrBuf
TCHAR), CStrBufA
(char
varianta) a CStrBufW
(wchar_t
varianta).
nMinLength
Minimální délka vyrovnávací paměti znaků.
dwFlags
Určuje, zda je délka řetězce automaticky určena. Může to být jedna z následujících možností:
AUTO_LENGTH Délka řetězce se automaticky určí při zavolání CSimpleStringT::Release . Řetězec musí být ukončen s hodnotou null. Výchozí hodnota.
SET_LENGTH Délka řetězce je nastavena při CSimpleStringT::GetBuffer je volána.
Poznámky
Vytvoří vyrovnávací paměť řetězce pro přidružený objekt řetězce. Během sestavování se volá CSimpleStringT::GetBuffer nebo CSimpleStringT::GetBufferSetLength .
Všimněte si, že konstruktor kopírování je private
.
CStrBufT::operator PCXSTR
Přímo přistupuje ke znakům uloženým v přidruženém objektu řetězce jako řetězec ve stylu jazyka C.
operator PCXSTR() const throw();
Návratová hodnota
Ukazatel znaku na data řetězce.
Poznámky
Voláním této funkce vrátíte ukazatel na vyrovnávací paměť znaků objektu řetězce. Obsah objektu řetězce nelze tímto ukazatelem změnit.
CStrBufT::operator PXSTR
Přímo přistupuje ke znakům uloženým v přidruženém objektu řetězce jako řetězec ve stylu jazyka C.
operator PXSTR() throw();
Návratová hodnota
Ukazatel znaku na data řetězce.
Poznámky
Voláním této funkce vrátíte ukazatel na vyrovnávací paměť znaků objektu řetězce. Vývojář může změnit obsah objektu řetězce tímto ukazatelem.
CStrBufT::P CXSTR
Ukazatel na konstantní řetězec.
typedef CSimpleStringT<TCharType>::PCXSTR PCXSTR;
CStrBufT::P XSTR
Ukazatel na řetězec.
typedef CSimpleStringT<TCharType>::PXSTR PXSTR;
CStrBufT::SET_LENGTH
Nastavte délku objektu řetězce v GetBuffer
čase.
static const DWORD SET_LENGTH = 0x02;
Poznámky
Nastavte délku objektu řetězce v GetBuffer time.
Určuje, zda CSimpleStringT::GetBuffer a CSimpleStringT::GetBufferSetLength jsou volány při vytvoření objektu vyrovnávací paměti řetězce.
CStrBufT::SetLength
Nastaví délku vyrovnávací paměti znaků.
void SetLength(int nLength);
Parametry
nLength
Nová délka vyrovnávací paměti znaků objektu řetězce.
Poznámka:
Musí být menší nebo roven minimální délce vyrovnávací paměti určené v konstruktoru CStrBufT
.
Poznámky
Voláním této funkce nastavíte délku řetězce reprezentované objektem vyrovnávací paměti.
CStrBufT::StringType
Typ řetězce, jehož vyrovnávací paměť má být manipulována specializacemi této šablony třídy.
typedef CSimpleStringT<TCharType> StringType;
Poznámky
TCharType
je typ znaku použitý k specializaci šablony třídy.