/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
< class > vs. < typemname >
Fra : Ukendt


Dato : 07-12-02 05:33

Hej

Jeg er lige kommet til Templates i min C++-bog.
Jeg har læst kapitlet igennem flere gange, men har dog stadig ikke
luret hvad forskellem på < class > og < typename > er?

Er der én der kan hjælpe mig.

Mvh
Jesper

 
 
Mogens Hansen (07-12-2002)
Kommentar
Fra : Mogens Hansen


Dato : 07-12-02 13:16


<Neo> wrote in message news:asi2vu4f73a8ooei4m42k29pnjhkur2g6s@4ax.com...
> Hej
>
> Jeg er lige kommet til Templates i min C++-bog.
> Jeg har læst kapitlet igennem flere gange, men har dog stadig ikke
> luret hvad forskellem på < class > og < typename > er?

Man bruger "typename T" til at fortælle til at fortælle compileren at "der
findes en type ved navn T".
Især bruger man "typename" for at angive afhængige typer:

template <class T> void foo(T& t)
{
typename T::iterator i = v.begin()
//...
}


For at erklære en template er der frit valg mellem brug af "class" og
"typename":
template <class T> void foo();
template <typename T> void foo();

Venlig hilsen

Mogens Hansen



Claus Rasmussen (07-12-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 07-12-02 23:39

Neo <> wrote:

> Jeg er lige kommet til Templates i min C++-bog.
> Jeg har læst kapitlet igennem flere gange, men har dog stadig ikke
> luret hvad forskellem på < class > og < typename > er?

Der er ingen forskel. Da man opfandt templates var 'typename' endnu
ikke opfundet, og så valgte man at genbruge 'class'. Det var så lidt
åndssvagt at skrive 'template <class T>' når T i en konkret sammen-
hæng kunne være en 'int, der jo ikke er en klasse, så da man senere
i en anden sammenhæng opfandt 'typename' besluttede man sig for, at
gøre den gamle skade god igen ved også at tillade 'typename' i tem-
plate konstruktioner.

Kort sagt: Brug 'typename'.

-Claus


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste