C ++ - znaczenie instrukcji łączącej typedef i typename [duplikat]
To pytanie ma już tutaj odpowiedź:
Gdzie i dlaczego muszę umieścić słowa kluczowe „szablon” i „nazwa pliku”? 6 odpowiedziW pliku nagłówkowym C ++ widzę ten kod:
typedef typename _Mybase::value_type value_type;
Teraz, jak rozumiem, cytując z «C ++ Kompletny odnośnik »Schildt.typename
można zastąpić klasą słów kluczowych, drugim użyciemtypename
jest informowanie kompilatora, że nazwa użyta w deklaracji szablonu jest nazwą typu, a nie nazwą obiektu.
Podobnie można zdefiniować nowe nazwy typów danych, używając słowa kluczowegotypedef
. W rzeczywistości nie tworzysz nowego typu danych, ale definiujesz nową nazwę dla istniejącego typu.
Czy możesz jednak wyjaśnić, co dokładnie oznacza powyższy wiersz kodu, gdzietypedef
itypename
są połączone razem. A co robi „::
„w oświadczeniu oznacza to?