Avatar billede dehdar Nybegynder
27. februar 2008 - 00:40 Der er 7 kommentarer og
1 løsning

Initiering af static template private pointer

Hej,

Hvordan initierer man en static template private pointer eller rettere sagt, kan det overhovedet lade sig gøre? Eks:

private:
static klasse<template> *pointer = NULL;

Når jeg skriver følgende, så får jeg en fejl, som siger at projectnavn.exe fil ikke kunne findes.
Avatar billede arne_v Ekspert
27. februar 2008 - 00:51 #1
#include <cstdlib>

using namespace std;

template<class T>
class Foobar
{
    private:
        static Foobar<T> *one  = NULL;
};

int main()
{
    Foobar<int> fb;
    return 0;
}

compiler ikke men:

#include <cstdlib>

using namespace std;

template<class T>
class Foobar
{
    private:
        static Foobar<T> *one;
};

template<class T>
Foobar<T> *Foobar<T>::one = NULL;

int main()
{
    Foobar<int> fb;
    return 0;
}


gør - måske kan det give lidt inspiration.
Avatar billede dehdar Nybegynder
27. februar 2008 - 01:34 #2
Det er en smart måde at gøre det på, men uanset hvad jeg gør, så får jeg en LNK2001 fejl :S Det er selvfølgelig svært for dig at bedømme hvad der er galt, når du ikke har set min fil, men jeg finder ud af det imorgen.

Tak for hjælpen
Avatar billede segmose Nybegynder
27. februar 2008 - 10:39 #3
Du bør nok liste lidt kode her skær alt unødvendigt væk indtil der kun er fejlen tilbage.
Umiddelbart ville jeg gætte på at du har din template i en fil hvor den ikke bliver instantieret og derfor bliver der ikke lavet noget kode så linkeren ikke kan så heller ikke finde noget at linke.
Avatar billede dehdar Nybegynder
27. februar 2008 - 21:29 #4
Tak for jeres interesse, jeg løste problemet tidligere idag. Fejlen var, at man via static member functions åbenbart ikke kan tilgå medlemsdata, så længe der ikke er oprettet et objekt af klassen. Derfor lavede jeg en default constructor, så jeg kunne initiere pointeren og oprettede et objekt, så virkede det.

I er begge velkommen til at svare.
Avatar billede arne_v Ekspert
28. februar 2008 - 01:18 #5
.
Avatar billede arne_v Ekspert
28. februar 2008 - 21:43 #6
skulle segmose ikke ogsaa have svaret ?
Avatar billede segmose Nybegynder
29. februar 2008 - 15:59 #7
np :)
Avatar billede dehdar Nybegynder
29. februar 2008 - 18:48 #8
Jeg beklager, at jeg var lidt for hurtig med at acceptere Arnes svar. Jeg troede man kunne acceptere flere svar efterfølgende, men nope :(
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