Rychlý dotaz na zásobníku IMPL ze standardní knihovny C ++

hlasů
0

Co řádek:

template<typename _Tp1, typename _Seq1>
friend bool
operator==(const stack<_Tp1, _Seq1>&, const stack<_Tp1, _Seq1>&);

v http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/a01367.html

dělat?

Proč _Tp1 opakuje dvakrát v seznamu arguements? Dík,

Položena 03/07/2010 v 17:09
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
3

To je jako se ptát, proč:

int strcmp( const char * a, const char * b );

const char * se opakuje dvakrát - tam jsou dvě věci, pro porovnání. Parametr šablony _Tp1 je typ, co je uložen v zásobníku - oba zásobníky jsou ve srovnání se musí ukládat stejného typu.

Vezměte prosím na vědomí, že čtení zdroj Standardní knihovně je to dobrý způsob, jak naučit C ++ - budete potřebovat dobré knihy, jako je tenhle .

Odpovězeno 03/07/2010 v 17:13
zdroj uživatelem

hlasů
1

Deklaruje operátor rovnosti mezi dvěma stacksa přítele funkce této třídy, který je nezbytný k tomu, aby přístup k soukromým členům.

const stack<_Tp1, _Seq1>Objeví dvakrát, protože tam jsou 2 argumenty.

Samozřejmě to může být psáno jak

bool operator==(const stack<_Tp1, _Seq1>& y) const { return c == y.c; }

ale Standard C ++ (§ [stack.ops] (23.3.5.3.4)), se zdá vyžadovat, aby obsluha byla bez funkce.

Odpovězeno 03/07/2010 v 17:12
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more