Avatar billede joeb Nybegynder
15. marts 2002 - 15:29 Der er 3 kommentarer og
1 løsning

template class- spørgsmål

Jeg sidder og øver mig lidt på at bruge templates i Visual C++ og er stødt på flg. notation som jeg ikke helt forstår.

Generelt:

template<class Type>
Klasse<Type>::Klasse()
:funktion1(), funktion2() {

et_eller_andet

};

Spørgsmål:
Hvordan skal operatorerne "::" og ":" forstås her.

Er der iøvrigt andre her der har problemer med template-klasser og Visual C++?
Avatar billede wisen Nybegynder
15. marts 2002 - 15:36 #1
"::" er den såkaldte "scope-operator" der er altså den funktion "Klasse" er ligger i "Klasse<Type>" scopet det handler om. Derudover er den klassens contructor som vha. ":" laver nogle initialiseringer. Man kan f.eks. kalde klassens "parent" constructor :


class Klasse1
{
private:
int m_i;
public:
Klasse1(int i);
};

Klasse1::Klasse1(int i)
{
m_i = i;
}

class Klasse2 : public Klasse 1
{
private:
int m_j;
public:
Klasse2(int i, int j);
};

Klasse2::Klasse2(int i, int j) : Klasse1(i)
{
m_j = j;
}

/Wisen
Avatar billede joeb Nybegynder
15. marts 2002 - 15:52 #2
OK - så constructoren kalder nogle memberfunctions udenfor constructoren ved hjælp af :, og :: sørger for at vi kan arbejde med funktioner udenfor "scopet". Har jeg forstået det rigtigt?
Avatar billede wisen Nybegynder
19. marts 2002 - 09:56 #3
Ja, pånær det ikke er memberfunktioner som bliver kaldt, det er andre constructorer; men det kan godt være på membervariable...

/Wisen
Avatar billede wisen Nybegynder
19. marts 2002 - 10:22 #4
Takker for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester