eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingszablony metod - deklaracja i definicja › szablony metod - deklaracja i definicja
  • Data: 2009-08-26 19:17:24
    Temat: szablony metod - deklaracja i definicja
    Od: "Megas" <k...@o...eu> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Witam wszystkich,

    Mam problem z kompilacja kodu C++ pod Visual Studio 2005 w ktorym
    zdefiniowałem sobie szablon metody w klasie - moze ktos juz spotkal sie z
    takim problemem?

    Stworzyłem sobie biblioteke *.dll, gdzie w pliku A.h zadeklarowałem klase A
    zawierajaca szablon metody, zas w pliku A.cpp zdefiniowałem ciało tego
    szablonu:
    // plik A.h
    class __declspec(dllexport) A {
    template<typename _T>
    A& operator<<( const _T lNumer );
    };

    // plik A.cpp
    template<typename _T>
    A& A::operator<<( const _T lNumer ) {
    *pStream_ << lNumer;
    return *this;
    }
    Biblioteka *.dll poprawnie mi sie kompiluje i linkuje, jednak uzycie
    operatora<< tej klasy poza ta biblioteka (np. w pliku *.exe) powoduja blad
    linkera: error LNK2019: unresolved external symbol.

    Ale gdy tylko umieszcze deklaracje i definicje tego opertatora w tym samym
    miejscu:
    // plik A.h
    class __declspec(dllexport) A {
    template<typename _T>
    A& operator<<( const _T lNumer ){
    *pStream_ << lNumer;
    return *this;
    }
    };
    to wszystko działa poprawnie i moge z tego operatora korzystac w plikach
    *.exe bez zadnego problemu.

    Czy moze ktos wie dlaczego tak sie dzieje??

    Pozdrawiam


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: